Spaces:
Running
Running
Hozifa Elgharbawy
feat: Add isDeleted field to exercise, meal, meal plan, muscle, ingredient, and equipment models
3daae40
import { ExerciseType } from "@common/enums/exercise-type.enum"; | |
import mongoose, { ObjectId } from "mongoose"; | |
const { Schema } = mongoose; | |
export interface IExercise { | |
name: string; | |
category: string; | |
duration?: number | null; | |
exerciseType: ExerciseType; | |
expectedDurationRange: { | |
min: number; | |
max: number; | |
}; | |
reps?: number; | |
sets?: number; | |
instructions: string; | |
benefits: string; | |
targetMuscles: { | |
primary: ObjectId; | |
secondary: ObjectId; | |
} | |
equipments: ObjectId[]; | |
coverImage: string; | |
media: { | |
type: "image" | "video"; | |
url: string; | |
}; | |
isDeleted: boolean; | |
} | |
const exerciseSchema = new Schema<IExercise>({ | |
name: { type: String, required: true, unique: true, dropDups: true }, | |
category: { type: String, required: true }, | |
duration: { type: Number, required: false, default: 0 }, | |
exerciseType: { | |
type: String, | |
required: false, | |
enum: ExerciseType | |
}, | |
expectedDurationRange: { | |
min: { type: Number, required: true }, | |
max: { type: Number, required: true }, | |
}, | |
reps: { type: Number, required: false }, | |
sets: { type: Number, required: false }, | |
instructions: { type: String, required: true }, | |
benefits: { type: String, required: true }, | |
targetMuscles: { | |
primary: { type: Schema.Types.ObjectId, ref: "muscles" }, | |
secondary: { type: Schema.Types.ObjectId, ref: "muscles" }, | |
}, | |
equipments: [{ type: Schema.Types.ObjectId, ref: "equipments" }], | |
coverImage: { type: String, required: true }, | |
media: { | |
type: { | |
type: String, | |
enum: ["image", "video"], | |
required: true, | |
}, | |
url: { type: String, required: true }, | |
}, | |
isDeleted: { type: Boolean, default: false }, | |
}); | |
export type ExerciseDocument = IExercise & mongoose.Document; | |
export const Exercise = mongoose.model<ExerciseDocument>( | |
"exercises", | |
exerciseSchema | |
); | |