Files
meanTorrent/modules/about/server/models/makers.server.model.js
2018-05-03 18:04:55 +08:00

77 lines
1.3 KiB
JavaScript

'use strict';
/**
* Module dependencies
*/
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
path = require('path'),
CommonSchema = require(path.resolve('./modules/core/server/models/common.server.model'));
/**
* setNumberValueToZero
* @param v
* @returns {number}
*/
var setNumberValueToZero = function (v) {
return v < 0 ? 0 : v;
};
/**
* Maker Schema
*/
var MakerSchema = new Schema({
user: {
type: Schema.Types.ObjectId,
ref: 'User'
},
name: {
type: String,
unique: 'GROUP_NAME_ALREADY_EXISTS',
uppercase: true,
trim: true,
default: ''
},
desc: {
type: String,
trim: true,
default: ''
},
members: [{
type: Schema.Types.ObjectId,
ref: 'User'
}],
upload_access: {
type: String,
default: 'review'
},
torrent_count: {
type: Number,
set: setNumberValueToZero,
default: 0
},
vote_average: {
type: Number,
default: 0
},
vote_total: {
type: Number,
default: 0
},
vote_count: {
type: Number,
default: 0
},
_ratings: [CommonSchema.RatingSchema],
createdAt: {
type: Date,
default: Date.now
}
}, {usePushEach: true});
MakerSchema.index({torrent_count: -1});
MakerSchema.index({upload_access: -1});
mongoose.model('Maker', MakerSchema);