const mongoose = require('mongoose'); const equitySchema = new mongoose.Schema({ title: { type: String, required: true, trim: true }, description: { type: String, default: '' }, type: { type: String, enum: ['coupon', 'membership', 'discount', 'gift', 'other'], required: true }, platform: { type: String, required: true, enum: ['taobao', 'jd', 'pdd', 'meituan', 'eleme', 'douyin', 'kuaishou', 'other'] }, value: { type: Number, default: 0 }, unit: { type: String, default: '元' }, validStart: { type: Date, required: true }, validEnd: { type: Date, required: true }, status: { type: String, enum: ['active', 'used', 'expired', 'transferred'], default: 'active' }, owner: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true }, source: { type: String, enum: ['manual', 'import', 'purchase', 'transfer'], default: 'manual' }, images: [{ type: String }], tags: [{ type: String }], isTransferable: { type: Boolean, default: true }, transferPrice: { type: Number, default: 0 }, metadata: { type: mongoose.Schema.Types.Mixed, default: {} } }, { timestamps: true }); equitySchema.index({ owner: 1, status: 1 }); equitySchema.index({ platform: 1, type: 1 }); equitySchema.index({ validEnd: 1 }); module.exports = mongoose.model('Equity', equitySchema);