next/models/challenges/gen.ts
2023-09-25 19:26:13 -04:00

50 lines
1.0 KiB
TypeScript

import mongoose, {Schema, PopulatedDoc, Document, Model} from "mongoose";
import SequenceFactory from "mongoose-sequence";
import { hasMigrated } from "../../lib/dbconfig";
const AutoIncrement = SequenceFactory(mongoose);
export interface IChallenge {
_id: number;
name: string;
description: string;
deadline: Date;
active: boolean;
color: string;
allowMultiple: boolean;
}
const challengeSchema = new mongoose.Schema<IChallenge>({
_id: {
type: Number
},
name: {
type: String,
required: true
},
description: {
type: String,
required: true
},
deadline: {
type: Date,
required: true
},
active: {
type: Boolean,
default: true
},
color: {
type: String,
required: true,
default: `#${Math.floor(Math.random()*16777215).toString(16)}`
},
allowMultiple: {
type: Boolean,
default: true
}
})
hasMigrated && challengeSchema.plugin(AutoIncrement, {id: "challenges"});
export const Challenge: Model<IChallenge> = /* mongoose.models.Challenge || */ mongoose.model("Challenge", challengeSchema, "challenges")