rtech-struct
Version:
Rtech Platform Superstruct Entity
44 lines (41 loc) • 1.32 kB
JavaScript
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
}