Spaces:
Running
Running
File size: 1,851 Bytes
cbdd38a f1528d2 d491754 9d56cbc cbdd38a 9d56cbc cbdd38a 9d56cbc f1528d2 f402448 9d56cbc 3daae40 d491754 cbdd38a 9d56cbc 889c2f1 cbdd38a 9d56cbc cbdd38a 9d56cbc f1528d2 9d56cbc f402448 9d56cbc 3daae40 d491754 9d56cbc |
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 61 62 63 64 65 66 67 68 69 70 71 |
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
);
|