const mongoose = require('mongoose'); const feedbackSchema = new mongoose.Schema({ userId: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true, }, rating: { type: Number, required: true, min: 1, max: 5, }, category: { type: String, required: true, enum: ['ui', 'bug', 'feature', 'performance', 'events', 'other'], }, subject: { type: String, required: true, trim: true, maxlength: 200, }, message: { type: String, required: true, trim: true, maxlength: 2000, }, email: { type: String, required: true, trim: true, }, attachment: { filename: String, url: String, mimetype: String, size: Number, }, status: { type: String, enum: ['pending', 'reviewed', 'resolved', 'closed'], default: 'pending', }, adminNotes: { type: String, trim: true, maxlength: 1000, }, reviewedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User', }, reviewedAt: Date, createdAt: { type: Date, default: Date.now, }, updatedAt: { type: Date, default: Date.now, }, }); // Update timestamp on save feedbackSchema.pre('save', function (next) { this.updatedAt = new Date(); next(); }); module.exports = mongoose.model('Feedback', feedbackSchema);