Files
meanTorrent/modules/forums/server/models/topic.server.model.js
2017-07-08 10:17:20 +08:00

114 lines
1.6 KiB
JavaScript

'use strict';
/**
* Module dependencies
*/
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
/**
* Sub Attach Schema
*/
var AttachSchema = new Schema({
filename: {
type: String,
default: '',
trim: true
},
downCount: {
type: Number,
default: 0
},
createdAt: {
type: Date,
default: Date.now
}
});
/**
* Sub Score Schema
*/
var ScoreSchema = new Schema({
user: {
type: Schema.Types.ObjectId,
ref: 'User'
},
score: {
type: Number,
default: 0
},
createdAt: {
type: Date,
default: Date.now
}
});
/**
* Topic Schema
*/
var TopicSchema = new Schema({
forum: {
type: Schema.Types.ObjectId,
ref: 'Forum'
},
user: {
type: Schema.Types.ObjectId,
ref: 'User'
},
title: {
type: String,
default: '',
trim: true
},
content: {
type: String,
default: '',
trim: true
},
readOnly: {
type: Boolean,
default: false
},
viewCount: {
type: Number,
default: 0
},
replyCount: {
type: Number,
default: 0
},
_replies: [this],
_attach: [AttachSchema],
_scoreList: [ScoreSchema],
isTop: {
type: Number,
default: 0
},
lastUser: {
type: Schema.Types.ObjectId,
ref: 'User'
},
lastReplyAt: {
type: Date
},
updatedAt: {
type: Date
},
updatedBy: {
type: Schema.Types.ObjectId,
ref: 'User'
},
createdAt: {
type: Date,
default: Date.now
}
});
mongoose.model('Topic', TopicSchema);
mongoose.model('Attach', AttachSchema);
mongoose.model('Score', ScoreSchema);