Spaces:
Running
Running
File size: 1,395 Bytes
7676a27 92fdb89 7676a27 f52f1cd 3daae40 f06a425 7676a27 92fdb89 7676a27 92fdb89 cbe2a8f f06a425 92fdb89 cbe2a8f 7676a27 f52f1cd 3daae40 7676a27 |
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 |
import mongoose from "mongoose";
const { Schema } = mongoose;
import { FitnessLevel } from "@common/enums/fitness-level.enum";
export interface IMealPlan {
image: string;
description: string;
duration: number;
level: FitnessLevel;
your_journey: string;
key_features: {
title: string;
description: string;
}[];
days: {
day_number: number;
meals: mongoose.Types.ObjectId[];
}[];
aiGenerated: boolean;
isDeleted: boolean;
createdAt?: Date;
}
const mealPlanSchema = new Schema({
image: { type: String, required: true },
description: { type: String, required: true },
duration: { type: Number, required: true },
level: { type: String, enum: FitnessLevel, required: true },
your_journey: { type: String, required: false },
createdAt: { type: Date, default: Date.now, required: false },
key_features: [{
title: { type: String, required: false },
description: { type: String, required: false },
}],
days: [
{
day_number: { type: Number, required: true, },
meals: [
{ type: mongoose.Types.ObjectId, ref: "meals" },
],
},
],
aiGenerated: { type: Boolean, required: true, default: false },
isDeleted: { type: Boolean, default: false },
});
export type MealPlanDocument = IMealPlan & mongoose.Document;
export const MealPlan = mongoose.model<MealPlanDocument>(
"mealPlans",
mealPlanSchema
);
|