| Current Path : /home/deltalab/PMS/buy-button-generator/models/mongoose/ |
| Current File : //home/deltalab/PMS/buy-button-generator/models/mongoose/warehouse.js |
const mongoose = require('mongoose');
const { AddressSchema} = require('./address');
// SCHEMA ============================================
const WarehouseAssignmentSchema = new mongoose.Schema(
{
name : String,
partnerId : {
type: mongoose.Schema.Types.ObjectId,
required: false,
ref: 'Partner'
},
inboundRate : Number,
storageRate : Number,
storageMode : {
type: String,
enum: [
'LINEAR',
'CUBIC' ]},
minimumStorage : Number, //fixed value in case of linear meters, minimum of cubic meters invoiced in case of cubic meters
orderRate : Number,
returnRate : Number,
initialDate : Date,
endDate : Date,
},
{
timestamps: true,
versionKey: false
}
)
const WarehouseSchema = new mongoose.Schema(
{
name : String,
address : {
type: AddressSchema,
required: true
},
email : [String],
phone : String,
type : String,
size : Number,
isIndaco : Boolean, // only indaco admin can edit this warehouse and its inventory
isShared : Boolean, // is it shared for use among the platform users or not
partnerId : {
type: mongoose.Schema.Types.ObjectId,
required: false,
ref: 'Partner'
},
assignments: [WarehouseAssignmentSchema]
},
{
timestamps: true,
versionKey: false
}
)
// MODELS ============================================
const warehouseModel = mongoose.model('Warehouse', WarehouseSchema);
// EXPORTS ===========================================
module.exports = {
warehouseModel,
WarehouseSchema
};