18 lines
718 B
JavaScript
18 lines
718 B
JavaScript
const mongoose = require('mongoose');
|
|
|
|
const couponSchema = new mongoose.Schema({
|
|
code: { type: String, required: true, unique: true, uppercase: true, trim: true },
|
|
discountType: { type: String, enum: ['percentage', 'fixed'], default: 'percentage' },
|
|
discountValue: { type: Number, required: true },
|
|
minPurchaseAmount: { type: Number, default: 0 },
|
|
maxDiscountAmount: { type: Number, default: 0 },
|
|
startDate: { type: Date, default: Date.now },
|
|
endDate: { type: Date, required: true },
|
|
usageLimit: { type: Number, default: 100 },
|
|
usedCount: { type: Number, default: 0 },
|
|
isActive: { type: Boolean, default: true }
|
|
}, { timestamps: true });
|
|
|
|
module.exports = mongoose.model('Coupon', couponSchema);
|
|
|