Your IP : 216.73.216.220


Current Path : /home/deltalab/PMS/buy-button-generator/models/mongoose/
Upload File :
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
};