/**
 * Created by Tony on 2017/5/31.
 * 不同的用户会有一套自己的模板结构列表
 */
import mongoose from "mongoose";
let Schema = mongoose.Schema;
// let TreeNodeSchema = new Schema({
//     ID:Number,
//     ParentID:Number,
//     NextSiblingID:Number,
//     grpType: Number,  //建筑(const : 1)/公路(const 2)/其他 etc...
//     nodeType: Number, //节点类型：树节点(枝) 或 模板节点(叶)
//     tplType: Number,  //概算、预算、招投标 etc...
//     userId: String,   //用户自定义模板用
//     refId: Number,    //引用报表模板id (引用 collection: rpt_templates)
//     released: Boolean,//是否已发布， refId > -1 时才有意义
//     name: String,
//     isDeleted: Boolean
// });

let TplNodeSchema = new Schema({
    nodeType: Number,   //节点类型：树节点(枝) 或 模板节点(叶), 统一结构
    ID: Number,         //template节点ID,只有在nodeType是模板节点有效
    refId: Number,      //引用报表模板id (引用 collection: rpt_templates)
    name: String,       //显示名称
    released: Boolean,  //是否已发布
    items: []           //子节点
});

let RptTplTreeSchema = new Schema({
    compilationId: String,      //编办的ObjectId
    // engineerId: Number,         //工程专业Id(参考 /modules/common/const/engineering.js)
    userId: String,             //用户名的object_id串
    properties: [],             //这是一个预留的属性，假定未来还会有不同的划分细节(如：招标/投标/清单 ... etc)
    name: String,               //显示名称
    released: Boolean,          //是否已发布
    isDeleted: Boolean,         //删除标记
    flags: Schema.Types.Mixed,  //额外标记集合(这些标记可能会影响到前端显示，如‘计税方式’等)
    items: []                   //TplNodeSchema entity
});
RptTplTreeSchema.statics.findAndModify = function (query, sort, doc, options, callback) {
    return this.collection.findAndModify(query, sort, doc, options, callback);
};

mongoose.model("rpt_tpl_tree", RptTplTreeSchema, "rpt_tpl_tree");
/*
 let TreeNodeModel = mongoose.model("rpt_tpl_tree", TreeNodeSchema, "rpt_tpl_tree");
 /*/
// let TreeNodeModel = mongoose.model("rpt_tpl_tree", RptTplTreeSchema, "rpt_tpl_tree");
//*/

// export {TreeNodeModel as default};
