mirror of
https://github.com/jcreek/LivingDexTracker.git
synced 2026-07-13 19:13:43 +00:00
feat(#6): Add classes for database
This commit is contained in:
@@ -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);
|
||||||
@@ -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);
|
||||||
@@ -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);
|
||||||
Reference in New Issue
Block a user