diff options
Diffstat (limited to 'backend/src/models/Reservation.js')
-rw-r--r-- | backend/src/models/Reservation.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/backend/src/models/Reservation.js b/backend/src/models/Reservation.js new file mode 100644 index 0000000..8ddba54 --- /dev/null +++ b/backend/src/models/Reservation.js @@ -0,0 +1,54 @@ +const mongoose = require('mongoose'); + +const reservationSchema = new mongoose.Schema( + { + user: { + type: mongoose.Schema.Types.ObjectId, + ref: 'User', + required: [true, 'User is required'] + }, + table: { + type: mongoose.Schema.Types.ObjectId, + ref: 'Table', + required: [true, 'Table is required'] + }, + date: { + type: Date, + required: [true, 'Reservation date is required'] + }, + startTime: { + type: String, + required: [true, 'Start time is required'] + }, + endTime: { + type: String, + required: [true, 'End time is required'] + }, + numberOfGuests: { + type: Number, + required: [true, 'Number of guests is required'], + min: 1 + }, + status: { + type: String, + enum: ['pending', 'confirmed', 'cancelled', 'completed'], + default: 'pending' + }, + specialRequests: { + type: String, + trim: true + }, + occasion: { + type: String, + enum: ['regular', 'birthday', 'anniversary', 'business', 'other'], + default: 'regular' + } + }, + { + timestamps: true + } +); + +const Reservation = mongoose.model('Reservation', reservationSchema); + +module.exports = Reservation;
\ No newline at end of file |