opt-cc/api/models/promotion.js

47 lines
911 B
JavaScript

"use strict";
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const PromotionSchema = new Schema({
userId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
proposer: {
type: mongoose.Schema.Types.ObjectId,
ref: 'AppUser',
required: true
},
oldRankLvl: {
type: Number,
get: v => Math.round(v),
set: v => Math.round(v),
required: true
},
newRankLvl: {
type: Number,
get: v => Math.round(v),
set: v => Math.round(v),
required: true
},
confirmed: {
type: Number,
get: v => Math.round(v),
set: v => Math.round(v),
min: 0,
max: 2,
required: true
},
rejectReason: {
type: String
}
}, {
collection: 'promotion',
timestamps: {createdAt: 'timestamp'}
});
// optional more indices
PromotionSchema.index({timestamp: 1});
module.exports = mongoose.model('Promotion', PromotionSchema);