From 751857904785fee8e821650c112a225e799c0d93 Mon Sep 17 00:00:00 2001 From: Josh Creek <8179928+jcreek@users.noreply.github.com> Date: Sat, 6 Apr 2024 17:56:56 +0100 Subject: [PATCH] feat(#6): Add classes for database --- src/lib/models/PokedexEntry.ts | 31 +++++++++++++++++++++++++++++++ src/lib/models/User.ts | 13 +++++++++++++ src/lib/models/UserCatchEntry.ts | 19 +++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 src/lib/models/PokedexEntry.ts create mode 100644 src/lib/models/User.ts create mode 100644 src/lib/models/UserCatchEntry.ts diff --git a/src/lib/models/PokedexEntry.ts b/src/lib/models/PokedexEntry.ts new file mode 100644 index 0000000..8657941 --- /dev/null +++ b/src/lib/models/PokedexEntry.ts @@ -0,0 +1,31 @@ +import mongoose, { Schema, Document } from 'mongoose'; + +export interface PokedexEntry extends Document { + order: number; + boxPlacement: { box: number; row: number; column: number }; + pokedexNumber: number; + pokemon: string; + form: string; + generation: number; + originGame: string; + alternativeOrigin: string; + howToObtain: string; +} + +const pokedexEntrySchema = new Schema({ + order: Number, + boxPlacement: { + box: Number, + row: Number, + column: Number + }, + pokedexNumber: Number, + pokemon: String, + form: String, + generation: Number, + originGame: String, + alternativeOrigin: String, + howToObtain: String +}); + +export default mongoose.model('PokedexEntry', pokedexEntrySchema); diff --git a/src/lib/models/User.ts b/src/lib/models/User.ts new file mode 100644 index 0000000..08dedca --- /dev/null +++ b/src/lib/models/User.ts @@ -0,0 +1,13 @@ +import mongoose, { Schema, Document } from 'mongoose'; + +export interface User extends Document { + username: string; + // Add other user-related fields as needed +} + +const userSchema = new Schema({ + username: String + // Add other user-related fields as needed +}); + +export default mongoose.model('User', userSchema); diff --git a/src/lib/models/UserCatchEntry.ts b/src/lib/models/UserCatchEntry.ts new file mode 100644 index 0000000..aa0e41e --- /dev/null +++ b/src/lib/models/UserCatchEntry.ts @@ -0,0 +1,19 @@ +import mongoose, { Schema, Document } from 'mongoose'; + +export interface UserCatchEntry extends Document { + userId: mongoose.Types.ObjectId; // Reference to the user + pokedexEntryId: mongoose.Types.ObjectId; // Reference to the pokedex entry + haveToEvolve: boolean; + caught: boolean; + inHome: boolean; +} + +const userCatchEntrySchema = new Schema({ + userId: { type: mongoose.Types.ObjectId, ref: 'User' }, + pokedexEntryId: { type: mongoose.Types.ObjectId, ref: 'PokedexEntry' }, + haveToEvolve: Boolean, + caught: Boolean, + inHome: Boolean +}); + +export default mongoose.model('UserCatchEntry', userCatchEntrySchema);