feat(#6): Add classes for database

This commit is contained in:
Josh Creek
2024-04-06 17:56:56 +01:00
parent 596bfa3ec1
commit 88b5edb4b9
3 changed files with 63 additions and 0 deletions
+31
View File
@@ -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<PokedexEntry>({
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>('PokedexEntry', pokedexEntrySchema);
+13
View File
@@ -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<User>({
username: String
// Add other user-related fields as needed
});
export default mongoose.model<User>('User', userSchema);
+19
View File
@@ -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<UserCatchEntry>({
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>('UserCatchEntry', userCatchEntrySchema);