Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | 1x 1x 1x | import mongoose, { Schema } from 'mongoose'; import { IUser , UserData} from 'types/user_types'; const userSchema: Schema = new Schema({ username: { type: String, }, email: { type: String, required: true }, password: { type: String, }, // Store hashed passwords imageFilename: { type: String }, createdAt: { type: Date, default: Date.now }, updatedAt: { type: Date, default: Date.now }, aboutMe: { type: String, default: "" }, skills: { type: [String], default: [] }, selectedRole: { type: String, default: "" }, authProvider: { type: String } }, { timestamps: true, strict: true, versionKey: false }); userSchema.set('toJSON', { transform: (doc: mongoose.Document, ret: Record<string, any>): UserData => { return { id: ret._id.toString(), username: ret.username as string, email: ret.email as string, password: ret.password as string, imageFilename: ret?.imageFilename as string | undefined, createdAt: ret.createdAt ? ret.createdAt.toISOString() : undefined, updatedAt: ret.updatedAt ? ret.updatedAt.toISOString() : undefined, aboutMe: ret?.aboutMe as string | undefined, skills: ret?.skills as string[] | undefined, selectedRole: ret?.selectedRole as string | undefined }; } }); export const UserModel = mongoose.model<IUser>('User', userSchema); |