const mongoose = require('mongoose'); const dealSchema = new mongoose.Schema( { photographerId: { type: mongoose.Schema.Types.ObjectId, ref: 'Photographer', required: true, }, dealType: { type: String, enum: ['last_minute', 'seasonal', 'promotional'], default: 'last_minute', }, title: { type: String, required: true, }, description: { type: String, default: '', }, discountPercentage: { type: Number, required: true, min: 1, max: 100, }, originalPrice: { type: Number, required: true, }, discountedPrice: { type: Number, required: true, }, validFrom: { type: Date, default: Date.now, }, validUntil: { type: Date, required: true, }, maxUses: { type: Number, default: null, // unlimited if null }, usedCount: { type: Number, default: 0, }, isActive: { type: Boolean, default: false, }, applicablePackages: [ { type: mongoose.Schema.Types.ObjectId, ref: 'Package', }, ], applicableServices: [String], // ["wedding", "portrait"] bookingsUsed: [ { type: mongoose.Schema.Types.ObjectId, ref: 'Booking', }, ], }, { timestamps: true } ); module.exports = mongoose.model('Deal', dealSchema);