56 lines
1.1 KiB
JavaScript
56 lines
1.1 KiB
JavaScript
const mongoose = require('mongoose');
|
|
|
|
const userSelectionSchema = new mongoose.Schema({
|
|
userId: {
|
|
type: mongoose.Schema.Types.ObjectId,
|
|
ref: 'User',
|
|
required: true
|
|
},
|
|
selectedRecipes: [{
|
|
recipeId: {
|
|
type: mongoose.Schema.Types.ObjectId,
|
|
ref: 'Recipe',
|
|
required: true
|
|
},
|
|
quantity: {
|
|
type: Number,
|
|
default: 1,
|
|
min: 1
|
|
},
|
|
addedAt: {
|
|
type: Date,
|
|
default: Date.now
|
|
}
|
|
}],
|
|
aggregatedIngredients: [{
|
|
name: String,
|
|
totalAmount: Number,
|
|
unit: String,
|
|
recipes: [{
|
|
recipeId: {
|
|
type: mongoose.Schema.Types.ObjectId,
|
|
ref: 'Recipe'
|
|
},
|
|
recipeTitle: String,
|
|
amount: Number,
|
|
quantity: Number // recipe quantity multiplier
|
|
}]
|
|
}],
|
|
createdAt: {
|
|
type: Date,
|
|
default: Date.now
|
|
},
|
|
updatedAt: {
|
|
type: Date,
|
|
default: Date.now
|
|
}
|
|
});
|
|
|
|
// Update the updatedAt field before saving
|
|
userSelectionSchema.pre('save', function(next) {
|
|
this.updatedAt = Date.now();
|
|
next();
|
|
});
|
|
|
|
module.exports = mongoose.model('UserSelection', userSelectionSchema);
|