File size: 1,150 Bytes
d491754
 
 
 
 
2703d15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d491754
 
 
 
2703d15
b7f0477
2703d15
 
 
 
 
 
b7f0477
2703d15
 
 
 
 
d491754
 
 
 
 
2703d15
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
import mongoose from "mongoose";
const { Schema } = mongoose;

export interface IWorkout {
    name: string;
    type: string;
    created_by: mongoose.Types.ObjectId;
    templateWeeks: [
        {
            days: [
                {
                    day: number,
                    exercises: [
                        {
                            exercise: mongoose.Types.ObjectId,
                        },
                    ],
                },
            ],
        },
    ]
}

const workoutSchema = new Schema({
    name: { type: String, required: true, unique: true, dropDups: true },
    type: { type: String, required: true },
    created_by: { type: mongoose.Types.ObjectId, ref: "admins" },
    templateWeeks: [
        {
            days: [
                {
                    day: Number,
                    exercises: [
                        { type: mongoose.Types.ObjectId, ref: "exercises" },
                    ],
                },
            ],
        },
    ]
});


export type WorkoutDocument = IWorkout & mongoose.Document;

export const Workout = mongoose.model<WorkoutDocument>("workouts", workoutSchema);