diff options
Diffstat (limited to 'models')
-rw-r--r-- | models/votes/vote.model.ts | 2 | ||||
-rw-r--r-- | models/votes/vote.schema.ts | 9 |
2 files changed, 8 insertions, 3 deletions
diff --git a/models/votes/vote.model.ts b/models/votes/vote.model.ts index 1dbb146..df2307e 100644 --- a/models/votes/vote.model.ts +++ b/models/votes/vote.model.ts @@ -1,5 +1,7 @@ import { Model, model } from 'mongoose'; import { VoteSchema, voteSchema } from './vote.schema'; +voteSchema.index({ pollId: 1, userId: 1 }, { unique: true }); // Unique together + export default model<VoteSchema, Model<VoteSchema>>('Vote', voteSchema); diff --git a/models/votes/vote.schema.ts b/models/votes/vote.schema.ts index 709e8bf..63ba212 100644 --- a/models/votes/vote.schema.ts +++ b/models/votes/vote.schema.ts @@ -8,15 +8,18 @@ export interface VoteSchema extends Document, Omit<Vote, '_id'> { export const voteSchema = new Schema({ userId: { type: Types.ObjectId, - ref: 'user' + ref: 'user', + required: true }, pollId: { type: Types.ObjectId, - ref: 'poll' + ref: 'poll', + required: true }, which: { type: String, - enum: ['left', 'right'] + enum: ['left', 'right'], + required: true } }, { timestamps: true }); |