Files
meanTorrent/modules/forums/server/models/forum.server.model.js

90 lines
1.3 KiB
JavaScript
Raw Normal View History

2017-07-03 13:48:32 +08:00
'use strict';
/**
* Module dependencies
*/
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
/**
* setNumberValueToZero
* @param v
* @returns {number}
*/
var setNumberValueToZero = function (v) {
return v < 0 ? 0 : v;
};
2017-07-03 13:48:32 +08:00
/**
* Forum Schema
*/
var ForumSchema = new Schema({
name: {
type: String,
default: '',
trim: true
},
desc: {
type: String,
default: '',
trim: true
},
img: {
type: String,
default: '',
trim: true
},
order: {
type: Number,
default: 0
},
readOnly: {
type: Boolean,
default: false
},
operOnly: {
type: Boolean,
default: false
},
vipOnly: {
type: Boolean,
default: false
},
category: {
type: String,
default: 'discuss',
trim: true
},
2017-07-03 13:48:32 +08:00
topicCount: {
type: Number,
set: setNumberValueToZero,
2017-07-03 13:48:32 +08:00
default: 0
},
replyCount: {
type: Number,
set: setNumberValueToZero,
2017-07-03 13:48:32 +08:00
default: 0
},
lastTopic: {
2017-07-03 13:48:32 +08:00
type: Schema.Types.ObjectId,
ref: 'Topic'
},
moderators: [{
type: Schema.Types.ObjectId,
ref: 'User'
}],
createdAt: {
type: Date,
default: Date.now
}
}, {usePushEach: true});
2017-07-03 13:48:32 +08:00
2017-12-23 17:26:39 +08:00
ForumSchema.index({order: 1, createdat: -1});
ForumSchema.index({category: 1, order: 1, createdat: -1});
2017-07-03 13:48:32 +08:00
mongoose.model('Forum', ForumSchema);