samoulla-backend / models /promoCodeModel.js
Samoulla Sync Bot
Auto-deploy Samoulla Backend: b68e45770de26ed39feb4b1c0925e5345eb3a61d
634b9bb
const mongoose = require('mongoose');
const promoSchema = new mongoose.Schema(
{
code: {
type: String,
required: true,
unique: true,
uppercase: true,
trim: true,
},
type: {
type: String,
enum: ['percentage', 'fixed', 'shipping', 'welcome'],
required: true,
},
value: {
type: Number,
required: true,
},
active: {
type: Boolean,
default: true,
},
startsAt: {
type: Date,
},
expiresAt: {
type: Date,
},
usageLimit: {
type: Number,
default: null, // null = unlimited
},
usedCount: {
type: Number,
default: 0,
},
perUserLimit: {
type: Number,
default: 1,
},
minOrderValue: {
type: Number,
default: 0,
},
productIds: [
{
type: mongoose.Schema.ObjectId,
ref: 'Product',
},
],
categoryId: {
type: mongoose.Schema.ObjectId,
ref: 'Category',
default: null,
},
canBeUsedWithSaleItems: {
type: Boolean,
default: true,
},
description: String,
createdBy: {
type: mongoose.Schema.ObjectId,
ref: 'User',
},
},
{
timestamps: true,
},
);
module.exports = mongoose.model('PromoCode', promoSchema);