UNPKG

rtech-struct

Version:

Rtech Platform Superstruct Entity

44 lines (41 loc) 1.32 kB
const s = require('superstruct') const { Adr } = require('./adr') const { Goods } = require('./goods') const { PositiveNumber, PositiveInteger } = require('./number') const { NoEmptyString } = require('./string') const PackageOrder = s.type({ tracking_id: NoEmptyString, owner: NoEmptyString, height: PositiveNumber, length: PositiveNumber, width: PositiveNumber, weight: PositiveNumber, stackable: s.defaulted(s.optional(s.enums(['no', '1', '2', '3', '4'])), 'no'), quantity: s.defaulted(s.optional(PositiveInteger), 1), package_type: s.defaulted(s.optional(s.enums(['parcel', 'pallet'])), 'parcel'), references: s.defaulted(s.optional(s.array(s.string())), []), adr: s.optional(Adr), status: s.defaulted( s.optional( s.enums([ 'waiting_for_pickup', 'pickup_delayed', 'picked_up', 'delivery_delayed', 'delivered', 'waiting_for_pickup/position_needed', 'waiting_for_pickup/waiting_pickup', 'waiting_for_pickup/wrong_pickup_location', 'picked_up/position_needed', 'picked_up/waiting_delivery', 'picked_up/wrong_delivery_location' ]) ), 'waiting_for_pickup' ), comment: s.optional(s.string()), goods_value: s.optional(Goods) }) module.exports = { PackageOrder: PackageOrder }