Spaces:
Running
Running
import mongoose from "mongoose"; | |
import bcrypt from "bcrypt"; | |
export const saltrounds = 5; | |
const { Schema } = mongoose; | |
const userSchema = new Schema({ | |
name: { type: String, required: true }, | |
email: { type: String, required: true, unique: true, dropDups: true }, | |
password: { type: String, required: true }, | |
image: { type: Object, default: {} }, | |
gender: { type: String, required: true }, | |
height: { type: Number, required: true }, | |
weight: { type: Number, required: true }, | |
fitness_level: { type: Number, required: true }, | |
preferences: { | |
fitness_goal: { type: Number, required: true }, | |
target_weight: { type: Number, required: true }, | |
workout_frequency: { type: Number, required: true }, | |
preferred_days: [{ type: String, required: true }], | |
workout_place: { type: String, required: true }, | |
preferred_equipments: { type: String, required: true } | |
}, | |
injuries: [{ type: String, required: true }], | |
dob: { type: Date } | |
}); | |
userSchema.pre("save", async function (next) { | |
this.password = await bcrypt.hash(this.password, saltrounds); | |
next(); | |
}); | |
export const userModel = mongoose.model("users", userSchema); | |