vs-mongo-mart

Table of Contents

Project

uses

{
    {
        id: { type: String, default: '' },
        name: { type: String, default: '' },

        jobnum: { type: String, default: '' },

        hhid: { type: String, default: '' },
        clientfirst: { type: String, default: '' },
        clientlast: { type: String, default: '' },
        ...aaddress,
        ...acontact,

        estimator: { type: String, default: '' },
        techs: { type: Array, default: [] },

        dept: { type: String, default: '' },
        cat: { type: String, default: '' },

        stage: { type: String, default: 'quote' },
        status: { type: String, default: 'active' },


        opendate: { type: Date, default: Date.now() },
        lastdate: { type: Date, default: Date.now() },
        solddate: { type: Date, default: '' },
        scheddate: { type: Date, default: '' }, //get rid of eventually?
        closedate: { type: Date, default: '' },

        datelog: { type: Array, default: [] },

        info: { type: Object, default: {} },
        contracts:{type:Array, default:[]},

        lead:{
            type:Object,
            default:{
              apptdate:{type:Date,default:''},
              prstdate:{type:Date,default:''},
              time:{type:String,default:''},
              carryover:{type:Boolean,default:false},
              prstvia:{type:String,default:''},
              rewards:{type:Boolean,default:false},
              source:{type:String,default:''},
              generator:{type:String,default:''},
              paid:{type:Date,default:''}
            }
        },
        trackid: { type: String, default: null },//holds doc id for tracking
        refs:{type:Array, default:[]}, //remove?
        wos:{type:Array, default:[]},

        froot: { type: String, default: '' }
    },
    {
        toJSON: { virtuals: true },
        toObject: { virtuals: true }
    }
}

Bid

{
    {
        projectId:{type:String,default:''}, //was ref
        hhid:{type:String,default:''}, //new
        dept:{type:String,default:''},
        cat:{type:String,default:''},
        type:{type:String,default:''},
        bookprice:{type:Boolean,default:true},
        amntTotal:{type:Number,default:0},
        amntCust:{type:Number,default:0},
        amntAmeren:{type:Number,default:0},
        amntManf:{type:Number,default:0},
        amntSpecial:{type:Number,default:0},
        sold:{type:Date,default:''},
        invoiced:{type:Date,default:''},
        paid:{type:Date,default:''}
    }
}

ProjectsBEE

{
    id: {type:String,default:''},

    ref: {type:String,default:''},
    name: {type:String,default:''},

    custid: {type:String,default:''},
    street: {type:String,default:''},
    unit: {type:String,default:''},
    city: {type:String,default:''},
    state: {type:String,default:''},
    zip: {type:String,default:''},

    customer: custcore,
    estimator: {type:String,default:''},
    installers: {type:Array,default:[]},

    dept: {type:String,default:''},
    cat: {type:String,default:''},

    stage: {type:String,default:'quote'},
    status: {type:String,default:'active'},

    sold: {type:Boolean,default:false},

    opendate: {type:Date,default:Date.now()},
    lastdate: {type:Date,default:Date.now()},
    scheddate: {type:Date,default:''},
    closedate: {type:Date,default:''},

    datelog: {type:Array,default:[]},

    info: {type:Object,default:{}},

    trackid: {type:String,default:null},//holds doc ids for tracking

    froot: {type:String,default:''}
}

Tracking

uses

{
    id: { type: String, default: '' },  // unique, given to item being tracked
    projectname: { type: String, default: '' },
    ref: { type: Array, default: [] },
    estimator: { type: String, default: '' },

    cancelled: { type: Boolean, default: false },
    carryover: { type: Boolean, default: false },

    bids: { type: Array, default: [] },  //  holds list of bid items

    stage: { type: String, default: '' },  // quote || job || archived
    status: { type: String, default: '' }, //

    clientfirst: { type: String, default: '' },   // moved so this block is "Job Info" while above is "Contact Info"
    clientlast: {type: String, default:''},
    ...aaddress,
    ...acontact,

    datelog: {
        type: Array, default: [{
            date: Date.now,
            msg: 'Track Created'
        }]
    },//date of
    apptdate: { type: Date, default: '' }, // was date
    solddate: { type: Date, default: '' }, // should be there

    time: { type: String, default: '' },
    source: { type: String, default: '' },
    generator: { type: String, default: '' },
    prstvia: { type: String, default: null },
    prstdate: { type: Date, default: Date.now },
    rewards: { type: Boolean, default: false },

    amount: { type: Number, default: 0 }           // how are we saving the breakdown now (Ameren, Manf, etc.)?
}

Setting

{
    schema:{},
    options:{strict:false}
}