pinclub/pinclub

View on GitHub
models/forum.js

Summary

Maintainability
A
30 mins
Test Coverage
var mongoose  = require('mongoose');
var BaseModel = require("./base_model");
var Schema    = mongoose.Schema;
var ObjectId  = Schema.ObjectId;

var ForumSchema = new Schema({
    user: { type: ObjectId,ref: 'User' }, // 创建者
    path_name: { type: String },
    title: { type: String },
    content: { type: String },
    create_at: { type: Date, default: Date.now },
    type: {type: String, default: 'text', enum: ['public', 'internal', 'private']},
    topic_count: {type: Number, default: 0},
    managers: [{type: ObjectId, ref: 'User'}],
    members: [{type: ObjectId, ref: 'User'}],
    order: {type: Number, default: 0},
    template: {type: String},
    bannerImage: {type: String},
    css_text: {type:String},
    js_text: {type:String},
    sidebar_text: {type:String},
    parent: {type: ObjectId, ref: 'Forum'},
    show_type: {type: String, default: 'default', enum: ['index', 'default']}, // index: 首页显示/ default: 默认
    code: {type:String},
    avatar: {type: String}
});

ForumSchema.plugin(BaseModel);
ForumSchema.index({create_at: -1});
ForumSchema.index({user: 1, create_at: -1});

ForumSchema.pre('save', function (next) {
    var now = new Date();
    this.update_at = now;
    next();
});

mongoose.model('Forum', ForumSchema);