diff options
Diffstat (limited to 'models')
-rw-r--r-- | models/polls/poll.model.ts | 3 | ||||
-rw-r--r-- | models/polls/poll.schema.ts | 3 | ||||
-rw-r--r-- | models/users/user.schema.ts | 10 |
3 files changed, 10 insertions, 6 deletions
diff --git a/models/polls/poll.model.ts b/models/polls/poll.model.ts index 11d0cfa..6749e5c 100644 --- a/models/polls/poll.model.ts +++ b/models/polls/poll.model.ts @@ -1,8 +1,9 @@ import { Model, model } from 'mongoose'; import { PollSchema, pollSchema } from './poll.schema'; import { Types } from 'mongoose'; +import { Which } from 'which-types'; -pollSchema.methods.vote = function(userId: string, which: 'left' | 'right'): PollSchema { +pollSchema.methods.vote = function(userId: string, which: Which): PollSchema { const participants: Types.ObjectId[] = ['left', 'right'].reduce((acc, option) => { const { votes } = this.contents[option]; return acc.concat(votes); diff --git a/models/polls/poll.schema.ts b/models/polls/poll.schema.ts index 380c069..d495e4b 100644 --- a/models/polls/poll.schema.ts +++ b/models/polls/poll.schema.ts @@ -10,6 +10,7 @@ export interface PollSchema extends Document { left: ImageDataSchema; right: ImageDataSchema; }; + createdAt: Date; authorId: string; vote: (userId: string, which: 'left' | 'right') => PollSchema; } @@ -28,5 +29,5 @@ export const pollSchema = new Schema({ type: Types.ObjectId, ref: 'User' } -}); +}, { timestamps: true }); diff --git a/models/users/user.schema.ts b/models/users/user.schema.ts index 9030d61..ff6cbe9 100644 --- a/models/users/user.schema.ts +++ b/models/users/user.schema.ts @@ -1,19 +1,21 @@ import { Document, Schema } from 'mongoose'; import { User } from 'which-types'; -export interface UserSchema extends Document, User { +export interface UserSchema extends Document, Omit<User, '_id'> { password: string; } export const userSchema = new Schema({ - name: String, + username: String, password: String, + email: String, avatarUrl: { type: String, required: false }, age: { - type: Number + type: Number, + required: false } -}); +}, { timestamps: true }); |