UNPKG

rtech-struct

Version:

Rtech Platform Superstruct Entity

57 lines (48 loc) 1.61 kB
const s = require('superstruct') const SpecialCondition = s.enums(['Not Standard']) const VehicleType = s.enums(['AIRFREIGHT', 'TRUCK', 'VAN', 'VANLITE']) const FlowType = s.enums(['Domestic', 'Europe', 'Extra UE']) const MobilityPackageItem = s.object({ id: s.union([s.string(), s.number()]), pe_footprint_unit: s.number(), pe_footprint: s.number(), pe_weight: s.number(), final_pe: s.number(), special_conditions: s.array(SpecialCondition), stackable: s.boolean(), stack_count: s.optional(s.number()), quantity: s.number(), is_dangerous: s.boolean(), is_multistep: s.boolean() }) const NotStandardMobilityPackageDetails = s.object({ type: s.literal('not_standard') }) const StandardMobilityPackageDetails = s.object({ type: s.literal('standard'), total_pe_footprint: s.number(), total_pe_weight: s.number(), final_total_pe_load: s.number(), vehicle_types: s.array(VehicleType), flow_types: s.array(FlowType), expected_transit_time: s.number(), estimated_speedness: s.number(), adr: s.boolean(), multistep: s.boolean(), engine_needed: s.boolean(), packages: s.array(MobilityPackageItem) }) const MobilityPackageDetails = s.union([NotStandardMobilityPackageDetails, StandardMobilityPackageDetails]) const MobilityPackageQualifier = s.object({ type: s.literal('mobility-package'), details: MobilityPackageDetails }) const Qualifiers = s.array(MobilityPackageQualifier) module.exports = { MobilityPackageItem, NotStandardMobilityPackageDetails, StandardMobilityPackageDetails, MobilityPackageDetails, MobilityPackageQualifier, Qualifiers }