| Current Path : /home/deltalab/PMS/buy-button-generator/models/mongoose/ |
| Current File : //home/deltalab/PMS/buy-button-generator/models/mongoose/pickup.js |
/**
* Pickup types
*/
const mongoose = require('mongoose');
const { AddressSchema } = require('./address');
const { ParcelBaseSchema } = require('./parcel');
// CONSTANTS ==============================================
const PICKUP_MORNING_MIN_TIME = '07:00';
const PICKUP_MORNING_MAX_TIME = '12:00';
const PICKUP_AFTERNOON_MIN_TIME = '13:00';
const PICKUP_AFTERNOON_MAX_TIME = '18:00';
// SCHEMA =================================================
const BookPickupConfirmationSchema = new mongoose.Schema(
{
result : String,
error : String,
message : String,
confirmationId: String,
},
{
_id: false
}
);
const BookPickupSchema = new mongoose.Schema(
{
from : AddressSchema,
to : AddressSchema,
parcels : [ParcelBaseSchema],
carrierId : Number,
pickupTime : Date,
pickupNote : String,
// format of times: HH:mm
pickupMorningMinTime : String,
pickupMorningMaxTime : String,
pickupAfternoonMinTime : String,
pickupAfternoonMaxTime : String,
orderIds : String,
},
{
_id: false
}
);
// FUNCTIONS ==============================================
/**
* Set pickup times for the given pickup request to the day after today (tomorrow).
* The morning and afternoon pickup times are the globally set ones.
*/
function setTomorrowPickup(pickupRequest) {
const pickupDate = new Date(); // Today
pickupDate.setDate(pickupDate.getDate() + 1); // Tomorrow
pickupRequest.pickupTime = Math.round(pickupDate);
//TODO: these timings depend on the warehouse's
pickupRequest.pickupMorningMinTime = PICKUP_MORNING_MIN_TIME;
pickupRequest.pickupMorningMaxTime = PICKUP_MORNING_MAX_TIME;
pickupRequest.pickupAfternoonMinTime = PICKUP_AFTERNOON_MIN_TIME;
pickupRequest.pickupAfternoonMaxTime = PICKUP_AFTERNOON_MAX_TIME;
return pickupRequest;
}
// MODELS =================================================
const bookPickupModel = mongoose.model('BookPickup', BookPickupSchema);
const bookPickupConfirmationModel = mongoose.model('BookPickupConfirmation', BookPickupConfirmationSchema);
// EXPORTS ================================================
module.exports = {
// Functions --------------
setTomorrowPickup,
// Models -----------------
bookPickupConfirmationModel,
bookPickupModel,
}