Initial backend code

This commit is contained in:
Developer
2026-05-02 12:49:41 +08:00
commit 8bab5d67b2
21 changed files with 7616 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
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);