const mongoose = require('mongoose'); const dynamicPriceSchema = new mongoose.Schema( { photographerId: { type: mongoose.Schema.Types.ObjectId, ref: 'Photographer', required: true, unique: true, }, basePrice: { type: Number, required: true, }, pricingRules: { weekendSurcharge: { type: Number, default: 25, // percentage }, peakHoursSurcharge: { type: Number, default: 30, // percentage }, peakHoursStart: { type: String, default: '17:00', // 5 PM }, peakHoursEnd: { type: String, default: '20:00', // 8 PM }, lastMinuteDiscount: { type: Number, default: 0, // percentage (can be positive for discount or negative for surcharge) }, lastMinuteThreshold: { type: Number, default: 24, // hours before booking }, groupDiscount: { type: Number, default: 10, // percentage for multiple hours }, seasonalAdjustments: [ { season: String, // "summer", "monsoon", "winter", "festival" multiplier: Number, // price multiplier }, ], }, suggestedPrice: { type: Number, default: null, }, suggestionBasis: { type: String, enum: ['market_analysis', 'demand_trend', 'competitor_analysis'], default: 'market_analysis', }, lastUpdated: { type: Date, default: Date.now, }, }, { timestamps: true } ); module.exports = mongoose.model('DynamicPrice', dynamicPriceSchema);