campverse-backend / Models /Feedback.js
CampVerse CI
Deploy backend from GitHub Actions
c904036
Raw History Blame Contribute Delete
1.34 kB
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);