18 lines
711 B
JavaScript
18 lines
711 B
JavaScript
const mongoose = require('mongoose');
|
|
|
|
const reviewSchema = new mongoose.Schema({
|
|
user: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true },
|
|
product: { type: mongoose.Schema.Types.ObjectId, ref: 'Product', required: true },
|
|
rating: { type: Number, required: true, min: 1, max: 5 },
|
|
title: { type: String, required: true, trim: true },
|
|
comment: { type: String, required: true },
|
|
isVerifiedPurchase: { type: Boolean, default: true },
|
|
isApproved: { type: Boolean, default: true }
|
|
}, { timestamps: true });
|
|
|
|
// Prevent multiple reviews per product by same user
|
|
reviewSchema.index({ user: 1, product: 1 }, { unique: true });
|
|
|
|
module.exports = mongoose.model('Review', reviewSchema);
|
|
|