Merge pull request #8 from jcreek/6-set-up-classes-for-database-access

feat(#6): Add classes for database
This commit is contained in:
Josh Creek
2024-04-06 17:58:43 +01:00
committed by GitHub
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);