@burdenoff/microfe-movethewheels 2026.1031.1 → 2026.1031.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/MoveTheWheelsRoot.js +144 -136
  2. package/dist/MoveTheWheelsRoutes.js +61 -57
  3. package/dist/components/ShipmentRiskDialog.js +228 -0
  4. package/dist/components/TrackingAlertList.js +149 -0
  5. package/dist/generated/tracking-quality-operations.d.ts +1154 -2
  6. package/dist/generated/wspace-types.d.ts +2895 -50
  7. package/dist/hooks/useEntityImport.js +68 -0
  8. package/dist/hooks/useShipmentRisk.js +72 -0
  9. package/dist/hooks/useTracking.js +96 -82
  10. package/dist/movethewheels/components/ShipmentRiskDialog.d.ts +20 -0
  11. package/dist/movethewheels/components/TrackingAlertList.d.ts +14 -0
  12. package/dist/movethewheels/hooks/useEntityImport.d.ts +19 -0
  13. package/dist/movethewheels/hooks/useShipmentRisk.d.ts +41 -0
  14. package/dist/movethewheels/pages/ImportExportPage.d.ts +9 -0
  15. package/dist/movethewheels/types/index.d.ts +15 -1
  16. package/dist/movethewheels/utils/entityImport.d.ts +109 -0
  17. package/dist/movethewheels/utils/trackingAlerts.d.ts +36 -0
  18. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-down-up.js +22 -0
  19. package/dist/node_modules/lucide-react/dist/esm/icons/file-spreadsheet.js +30 -0
  20. package/dist/node_modules/lucide-react/dist/esm/icons/file-up.js +22 -0
  21. package/dist/pages/CustomersPage.js +88 -79
  22. package/dist/pages/DashboardPage.js +147 -151
  23. package/dist/pages/DriversPage.js +115 -106
  24. package/dist/pages/ImportExportPage.js +435 -0
  25. package/dist/pages/LiveTrackingPage.js +169 -169
  26. package/dist/pages/ProductsPage.js +85 -76
  27. package/dist/pages/VehiclesPage.js +99 -90
  28. package/dist/pages/WarehousesPage.js +97 -88
  29. package/dist/utils/entityImport.js +73 -0
  30. package/dist/utils/trackingAlerts.js +86 -0
  31. package/package.json +4 -2
  32. package/src/generated/tracking-quality-operations.ts +1519 -1
  33. package/src/generated/wspace-types.ts +3248 -51
  34. package/src/movethewheels/MoveTheWheelsRoot.tsx +8 -0
  35. package/src/movethewheels/MoveTheWheelsRoutes.tsx +4 -0
  36. package/src/movethewheels/components/ShipmentRiskDialog.tsx +315 -0
  37. package/src/movethewheels/components/TrackingAlertList.tsx +188 -0
  38. package/src/movethewheels/hooks/useEntityImport.ts +108 -0
  39. package/src/movethewheels/hooks/useShipmentRisk.ts +195 -0
  40. package/src/movethewheels/hooks/useTracking.ts +66 -22
  41. package/src/movethewheels/pages/CustomersPage.tsx +6 -1
  42. package/src/movethewheels/pages/DashboardPage.tsx +10 -20
  43. package/src/movethewheels/pages/DriversPage.tsx +6 -0
  44. package/src/movethewheels/pages/ImportExportPage.tsx +483 -0
  45. package/src/movethewheels/pages/LiveTrackingPage.tsx +20 -22
  46. package/src/movethewheels/pages/ProductsPage.tsx +14 -1
  47. package/src/movethewheels/pages/VehiclesPage.tsx +6 -0
  48. package/src/movethewheels/pages/WarehousesPage.tsx +6 -1
  49. package/src/movethewheels/types/index.ts +16 -1
  50. package/src/movethewheels/utils/entityImport.ts +239 -0
  51. package/src/movethewheels/utils/trackingAlerts.ts +151 -0
@@ -73,8 +73,10 @@ export type AdjustInventoryStockInput = {
73
73
  onHand?: InputMaybe<Scalars['Int']['input']>;
74
74
  };
75
75
  export type CaptureEpodInput = {
76
+ completionAttestation?: InputMaybe<Scalars['Boolean']['input']>;
76
77
  context?: InputMaybe<ContextInput>;
77
78
  deliveryJobId: Scalars['ID']['input'];
79
+ expectedShipmentStatusRevision?: InputMaybe<Scalars['Int']['input']>;
78
80
  latitude?: InputMaybe<Scalars['Float']['input']>;
79
81
  locationAccuracy?: InputMaybe<Scalars['Float']['input']>;
80
82
  longitude?: InputMaybe<Scalars['Float']['input']>;
@@ -94,6 +96,24 @@ export type CloseMtwContainerCycleInput = {
94
96
  expectedVersion: Scalars['Int']['input'];
95
97
  idempotencyKey: Scalars['String']['input'];
96
98
  };
99
+ export type CompareMtwFreightInvoiceInput = {
100
+ correctionReason?: InputMaybe<Scalars['String']['input']>;
101
+ estimateVersionId: Scalars['ID']['input'];
102
+ evidence: Array<MtwContainerEvidenceInput>;
103
+ expectedPreviousComparisonId?: InputMaybe<Scalars['ID']['input']>;
104
+ expectedRevision: Scalars['Int']['input'];
105
+ facts: MtwFreightInvoiceFactsInput;
106
+ idempotencyKey: Scalars['String']['input'];
107
+ shipmentId: Scalars['ID']['input'];
108
+ };
109
+ export type ConfigureShipmentStatusSourceInput = {
110
+ basisTrackingEventId: Scalars['ID']['input'];
111
+ expectedStatusRevision: Scalars['Int']['input'];
112
+ integrationId: Scalars['ID']['input'];
113
+ maxFutureSkewSeconds: Scalars['Int']['input'];
114
+ maxSourceAgeSeconds: Scalars['Int']['input'];
115
+ reason: Scalars['String']['input'];
116
+ };
97
117
  export type ContextFilterInput = {
98
118
  appId?: InputMaybe<Scalars['ID']['input']>;
99
119
  projectId?: InputMaybe<Scalars['ID']['input']>;
@@ -404,7 +424,7 @@ export type MtwAnalyticsSeries = {
404
424
  orderTrend: Array<MtwAnalyticsPoint>;
405
425
  revenueTrend: Array<MtwAnalyticsPoint>;
406
426
  };
407
- /** Ranked vehicles and drivers that can take a route right now, best first. */
427
+ /** Ranked candidates from recorded status, expiry and known live routes; not legal, maintenance or duty-hours clearance. */
408
428
  export type MtwAssignmentSuggestions = {
409
429
  __typename?: 'MtwAssignmentSuggestions';
410
430
  drivers: Array<MtwDriverSuggestion>;
@@ -660,6 +680,22 @@ export type MtwConsolidationSourceInput = {
660
680
  reference?: InputMaybe<Scalars['String']['input']>;
661
681
  revision?: InputMaybe<Scalars['String']['input']>;
662
682
  };
683
+ export type MtwConsumedFuelBasis = 'ESTIMATED_CONSUMPTION' | 'MEASURED_CONSUMPTION' | 'PURCHASED_OR_REFUELLED' | 'UNKNOWN';
684
+ export type MtwConsumedFuelPreview = {
685
+ __typename?: 'MtwConsumedFuelPreview';
686
+ distance?: Maybe<MtwFuelDistanceObservation>;
687
+ fuel?: Maybe<MtwFuelVolumeObservation>;
688
+ litresPer100Km?: Maybe<Scalars['Float']['output']>;
689
+ qualification: MtwConsumedFuelQualification;
690
+ reasons: Array<MtwConsumedFuelReason>;
691
+ status: MtwUtilizationMetricStatus;
692
+ };
693
+ export type MtwConsumedFuelPreviewInput = {
694
+ distance?: InputMaybe<MtwFuelDistanceObservationInput>;
695
+ fuel?: InputMaybe<MtwFuelVolumeObservationInput>;
696
+ };
697
+ export type MtwConsumedFuelQualification = 'OPERATOR_REPORTED_UNVERIFIED';
698
+ export type MtwConsumedFuelReason = 'DISTANCE_UNKNOWN' | 'FUEL_UNKNOWN' | 'INTERVAL_MISMATCH' | 'NON_MEASURED_DISTANCE' | 'PARTIAL_COVERAGE' | 'SOURCE_UNKNOWN' | 'UNSUPPORTED_FUEL_BASIS' | 'ZERO_DISTANCE';
663
699
  export type MtwContainer = {
664
700
  __typename?: 'MtwContainer';
665
701
  containerNumber: Scalars['String']['output'];
@@ -868,6 +904,29 @@ export type MtwContainerRepairPage = {
868
904
  total: Scalars['Int']['output'];
869
905
  };
870
906
  export type MtwContainerSuitability = 'ACCEPTABLE' | 'REJECTED' | 'REVIEW_REQUIRED';
907
+ export type MtwCreateServiceOfferingInput = {
908
+ availability?: InputMaybe<MtwServiceAvailability>;
909
+ category: MtwServiceOfferingCategory;
910
+ currency?: InputMaybe<Scalars['String']['input']>;
911
+ description?: InputMaybe<Scalars['String']['input']>;
912
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
913
+ name: Scalars['String']['input'];
914
+ price?: InputMaybe<Scalars['Float']['input']>;
915
+ pricingUnit?: InputMaybe<Scalars['String']['input']>;
916
+ providerId: Scalars['ID']['input'];
917
+ transitDays?: InputMaybe<Scalars['Int']['input']>;
918
+ };
919
+ export type MtwCreateServiceProviderInput = {
920
+ contactInfo?: InputMaybe<Scalars['JSON']['input']>;
921
+ description?: InputMaybe<Scalars['String']['input']>;
922
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
923
+ isVerified?: InputMaybe<Scalars['Boolean']['input']>;
924
+ name: Scalars['String']['input'];
925
+ rating?: InputMaybe<Scalars['Float']['input']>;
926
+ serviceAreas?: InputMaybe<Array<Scalars['String']['input']>>;
927
+ services?: InputMaybe<Array<Scalars['String']['input']>>;
928
+ type: MtwServiceProviderType;
929
+ };
871
930
  export type MtwCustomer = {
872
931
  __typename?: 'MtwCustomer';
873
932
  address?: Maybe<Scalars['JSON']['output']>;
@@ -1169,7 +1228,7 @@ export type MtwFleetAlert = {
1169
1228
  };
1170
1229
  export type MtwFleetAlertSeverity = 'CRITICAL' | 'WARNING';
1171
1230
  export type MtwFleetAlertSubjectType = 'DRIVER' | 'VEHICLE';
1172
- export type MtwFleetAlertType = 'LICENSE_EXPIRED' | 'LICENSE_EXPIRING' | 'MAINTENANCE_DUE_SOON' | 'MAINTENANCE_OVERDUE';
1231
+ export type MtwFleetAlertType = 'LICENSE_EXPIRED' | 'LICENSE_EXPIRING' | 'LICENSE_UNKNOWN' | 'MAINTENANCE_DUE_SOON' | 'MAINTENANCE_OVERDUE';
1173
1232
  export type MtwFleetStats = {
1174
1233
  __typename?: 'MtwFleetStats';
1175
1234
  activeVehicles: Scalars['Int']['output'];
@@ -1360,6 +1419,236 @@ export type MtwFreeTimeTermsInput = {
1360
1419
  export type MtwFreeTimeTierBasis = 'CHARGED_DAYS' | 'UNSUPPORTED';
1361
1420
  export type MtwFreightAmountBasis = 'CALCULATED' | 'SOURCED_FIXED' | 'UNKNOWN';
1362
1421
  export type MtwFreightCategory = 'ACCESSORIAL' | 'BASE_FREIGHT' | 'BROKER' | 'DESTINATION_HANDLING' | 'DUTY_ESTIMATE' | 'FREE_TIME_EXPOSURE' | 'FUEL' | 'INSURANCE' | 'ON_CARRIAGE' | 'ORIGIN_HANDLING' | 'OTHER' | 'PRE_CARRIAGE' | 'TAX_ESTIMATE';
1422
+ export type MtwFreightCommercialCapture = {
1423
+ __typename?: 'MtwFreightCommercialCapture';
1424
+ cargo: MtwFreightCommercialCargoFact;
1425
+ carrier: MtwFreightCommercialCarrierFact;
1426
+ destination: MtwFreightCommercialLocationFact;
1427
+ equipment: MtwFreightCommercialEquipmentFact;
1428
+ origin: MtwFreightCommercialLocationFact;
1429
+ ownerLegs: Array<MtwFreightCommercialOwnerLeg>;
1430
+ ownerShipment: MtwFreightCommercialShipment;
1431
+ schemaVersion: Scalars['Int']['output'];
1432
+ selectedLegs: Array<MtwFreightCommercialLegPin>;
1433
+ service: MtwFreightCommercialServiceFact;
1434
+ volume: MtwFreightCommercialVolumeFact;
1435
+ weight: MtwFreightCommercialWeightFact;
1436
+ };
1437
+ export type MtwFreightCommercialCaptureInput = {
1438
+ cargo: MtwFreightCommercialCargoFactInput;
1439
+ carrier: MtwFreightCommercialCarrierFactInput;
1440
+ destination: MtwFreightCommercialLocationFactInput;
1441
+ equipment: MtwFreightCommercialEquipmentFactInput;
1442
+ origin: MtwFreightCommercialLocationFactInput;
1443
+ schemaVersion: Scalars['Int']['input'];
1444
+ selectedLegs: Array<MtwFreightCommercialLegPinInput>;
1445
+ service: MtwFreightCommercialServiceFactInput;
1446
+ volume: MtwFreightCommercialVolumeFactInput;
1447
+ weight: MtwFreightCommercialWeightFactInput;
1448
+ };
1449
+ export type MtwFreightCommercialCargo = {
1450
+ __typename?: 'MtwFreightCommercialCargo';
1451
+ classificationLabel: Scalars['String']['output'];
1452
+ description: Scalars['String']['output'];
1453
+ };
1454
+ export type MtwFreightCommercialCargoFact = {
1455
+ __typename?: 'MtwFreightCommercialCargoFact';
1456
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1457
+ reason?: Maybe<Scalars['String']['output']>;
1458
+ status: MtwFreightCommercialStatus;
1459
+ value?: Maybe<MtwFreightCommercialCargo>;
1460
+ };
1461
+ export type MtwFreightCommercialCargoFactInput = {
1462
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1463
+ reason?: InputMaybe<Scalars['String']['input']>;
1464
+ status: MtwFreightCommercialStatus;
1465
+ value?: InputMaybe<MtwFreightCommercialCargoInput>;
1466
+ };
1467
+ export type MtwFreightCommercialCargoInput = {
1468
+ classificationLabel: Scalars['String']['input'];
1469
+ description: Scalars['String']['input'];
1470
+ };
1471
+ export type MtwFreightCommercialCarrier = {
1472
+ __typename?: 'MtwFreightCommercialCarrier';
1473
+ label: Scalars['String']['output'];
1474
+ reference: Scalars['String']['output'];
1475
+ };
1476
+ export type MtwFreightCommercialCarrierFact = {
1477
+ __typename?: 'MtwFreightCommercialCarrierFact';
1478
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1479
+ reason?: Maybe<Scalars['String']['output']>;
1480
+ status: MtwFreightCommercialStatus;
1481
+ value?: Maybe<MtwFreightCommercialCarrier>;
1482
+ };
1483
+ export type MtwFreightCommercialCarrierFactInput = {
1484
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1485
+ reason?: InputMaybe<Scalars['String']['input']>;
1486
+ status: MtwFreightCommercialStatus;
1487
+ value?: InputMaybe<MtwFreightCommercialCarrierInput>;
1488
+ };
1489
+ export type MtwFreightCommercialCarrierInput = {
1490
+ label: Scalars['String']['input'];
1491
+ reference: Scalars['String']['input'];
1492
+ };
1493
+ export type MtwFreightCommercialEquipment = {
1494
+ __typename?: 'MtwFreightCommercialEquipment';
1495
+ count: Scalars['Int']['output'];
1496
+ typeLabel: Scalars['String']['output'];
1497
+ };
1498
+ export type MtwFreightCommercialEquipmentFact = {
1499
+ __typename?: 'MtwFreightCommercialEquipmentFact';
1500
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1501
+ reason?: Maybe<Scalars['String']['output']>;
1502
+ status: MtwFreightCommercialStatus;
1503
+ value?: Maybe<MtwFreightCommercialEquipment>;
1504
+ };
1505
+ export type MtwFreightCommercialEquipmentFactInput = {
1506
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1507
+ reason?: InputMaybe<Scalars['String']['input']>;
1508
+ status: MtwFreightCommercialStatus;
1509
+ value?: InputMaybe<MtwFreightCommercialEquipmentInput>;
1510
+ };
1511
+ export type MtwFreightCommercialEquipmentInput = {
1512
+ count: Scalars['Int']['input'];
1513
+ typeLabel: Scalars['String']['input'];
1514
+ };
1515
+ export type MtwFreightCommercialLegPin = {
1516
+ __typename?: 'MtwFreightCommercialLegPin';
1517
+ expectedUpdatedAt: Scalars['DateTime']['output'];
1518
+ id: Scalars['ID']['output'];
1519
+ };
1520
+ export type MtwFreightCommercialLegPinInput = {
1521
+ expectedUpdatedAt: Scalars['DateTime']['input'];
1522
+ id: Scalars['ID']['input'];
1523
+ };
1524
+ export type MtwFreightCommercialLink = {
1525
+ __typename?: 'MtwFreightCommercialLink';
1526
+ fileId: Scalars['ID']['output'];
1527
+ versionId: Scalars['ID']['output'];
1528
+ };
1529
+ export type MtwFreightCommercialLinkInput = {
1530
+ fileId: Scalars['ID']['input'];
1531
+ versionId: Scalars['ID']['input'];
1532
+ };
1533
+ export type MtwFreightCommercialLocation = {
1534
+ __typename?: 'MtwFreightCommercialLocation';
1535
+ jurisdictionLabel?: Maybe<Scalars['String']['output']>;
1536
+ kind: MtwFreightLocationKind;
1537
+ label: Scalars['String']['output'];
1538
+ };
1539
+ export type MtwFreightCommercialLocationFact = {
1540
+ __typename?: 'MtwFreightCommercialLocationFact';
1541
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1542
+ reason?: Maybe<Scalars['String']['output']>;
1543
+ status: MtwFreightCommercialStatus;
1544
+ value?: Maybe<MtwFreightCommercialLocation>;
1545
+ };
1546
+ export type MtwFreightCommercialLocationFactInput = {
1547
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1548
+ reason?: InputMaybe<Scalars['String']['input']>;
1549
+ status: MtwFreightCommercialStatus;
1550
+ value?: InputMaybe<MtwFreightCommercialLocationInput>;
1551
+ };
1552
+ export type MtwFreightCommercialLocationInput = {
1553
+ jurisdictionLabel?: InputMaybe<Scalars['String']['input']>;
1554
+ kind: MtwFreightLocationKind;
1555
+ label: Scalars['String']['input'];
1556
+ };
1557
+ export type MtwFreightCommercialOwnerLeg = {
1558
+ __typename?: 'MtwFreightCommercialOwnerLeg';
1559
+ carrierId?: Maybe<Scalars['ID']['output']>;
1560
+ carrierName?: Maybe<Scalars['String']['output']>;
1561
+ containerCount?: Maybe<Scalars['Int']['output']>;
1562
+ containerType?: Maybe<OceanContainerType>;
1563
+ id: Scalars['ID']['output'];
1564
+ legNumber: Scalars['Int']['output'];
1565
+ mode: TransportMode;
1566
+ updatedAt: Scalars['DateTime']['output'];
1567
+ volumeCbm?: Maybe<Scalars['Float']['output']>;
1568
+ weightKg?: Maybe<Scalars['Float']['output']>;
1569
+ };
1570
+ export type MtwFreightCommercialProvenance = {
1571
+ __typename?: 'MtwFreightCommercialProvenance';
1572
+ evidenceLinks: Array<MtwFreightCommercialLink>;
1573
+ observedAt?: Maybe<Scalars['DateTime']['output']>;
1574
+ sourceReference: Scalars['String']['output'];
1575
+ sourceRevision: Scalars['String']['output'];
1576
+ };
1577
+ export type MtwFreightCommercialProvenanceInput = {
1578
+ evidenceLinks: Array<MtwFreightCommercialLinkInput>;
1579
+ observedAt?: InputMaybe<Scalars['DateTime']['input']>;
1580
+ sourceReference: Scalars['String']['input'];
1581
+ sourceRevision: Scalars['String']['input'];
1582
+ };
1583
+ export type MtwFreightCommercialServiceFact = {
1584
+ __typename?: 'MtwFreightCommercialServiceFact';
1585
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1586
+ reason?: Maybe<Scalars['String']['output']>;
1587
+ status: MtwFreightCommercialStatus;
1588
+ value?: Maybe<Scalars['String']['output']>;
1589
+ };
1590
+ export type MtwFreightCommercialServiceFactInput = {
1591
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1592
+ reason?: InputMaybe<Scalars['String']['input']>;
1593
+ status: MtwFreightCommercialStatus;
1594
+ value?: InputMaybe<Scalars['String']['input']>;
1595
+ };
1596
+ export type MtwFreightCommercialShipment = {
1597
+ __typename?: 'MtwFreightCommercialShipment';
1598
+ primaryMode: TransportMode;
1599
+ shipmentId: Scalars['ID']['output'];
1600
+ updatedAt: Scalars['DateTime']['output'];
1601
+ };
1602
+ /** Reported commercial context only; no quote acceptance or completeness authority. */
1603
+ export type MtwFreightCommercialStatus = 'NOT_APPLICABLE' | 'SOURCED' | 'UNKNOWN';
1604
+ export type MtwFreightCommercialVolume = {
1605
+ __typename?: 'MtwFreightCommercialVolume';
1606
+ amount: Scalars['String']['output'];
1607
+ unit: MtwFreightVolumeUnit;
1608
+ zeroReason?: Maybe<Scalars['String']['output']>;
1609
+ };
1610
+ export type MtwFreightCommercialVolumeFact = {
1611
+ __typename?: 'MtwFreightCommercialVolumeFact';
1612
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1613
+ reason?: Maybe<Scalars['String']['output']>;
1614
+ status: MtwFreightCommercialStatus;
1615
+ value?: Maybe<MtwFreightCommercialVolume>;
1616
+ };
1617
+ export type MtwFreightCommercialVolumeFactInput = {
1618
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1619
+ reason?: InputMaybe<Scalars['String']['input']>;
1620
+ status: MtwFreightCommercialStatus;
1621
+ value?: InputMaybe<MtwFreightCommercialVolumeInput>;
1622
+ };
1623
+ export type MtwFreightCommercialVolumeInput = {
1624
+ amount: Scalars['String']['input'];
1625
+ unit: MtwFreightVolumeUnit;
1626
+ zeroReason?: InputMaybe<Scalars['String']['input']>;
1627
+ };
1628
+ export type MtwFreightCommercialWeight = {
1629
+ __typename?: 'MtwFreightCommercialWeight';
1630
+ amount: Scalars['String']['output'];
1631
+ unit: MtwFreightWeightUnit;
1632
+ zeroReason?: Maybe<Scalars['String']['output']>;
1633
+ };
1634
+ export type MtwFreightCommercialWeightFact = {
1635
+ __typename?: 'MtwFreightCommercialWeightFact';
1636
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1637
+ reason?: Maybe<Scalars['String']['output']>;
1638
+ status: MtwFreightCommercialStatus;
1639
+ value?: Maybe<MtwFreightCommercialWeight>;
1640
+ };
1641
+ export type MtwFreightCommercialWeightFactInput = {
1642
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1643
+ reason?: InputMaybe<Scalars['String']['input']>;
1644
+ status: MtwFreightCommercialStatus;
1645
+ value?: InputMaybe<MtwFreightCommercialWeightInput>;
1646
+ };
1647
+ export type MtwFreightCommercialWeightInput = {
1648
+ amount: Scalars['String']['input'];
1649
+ unit: MtwFreightWeightUnit;
1650
+ zeroReason?: InputMaybe<Scalars['String']['input']>;
1651
+ };
1363
1652
  /** A declared currency/scale convention, not automatic ISO verification. */
1364
1653
  export type MtwFreightCurrency = {
1365
1654
  __typename?: 'MtwFreightCurrency';
@@ -1383,6 +1672,7 @@ export type MtwFreightEstimatePage = {
1383
1672
  export type MtwFreightEstimateVersion = {
1384
1673
  __typename?: 'MtwFreightEstimateVersion';
1385
1674
  actorProvenance: Scalars['String']['output'];
1675
+ commercialCapture?: Maybe<MtwFreightCommercialCapture>;
1386
1676
  createdBy: Scalars['ID']['output'];
1387
1677
  estimateReference: Scalars['String']['output'];
1388
1678
  evidence: Array<MtwContainerEvidence>;
@@ -1453,6 +1743,150 @@ export type MtwFreightFxInput = {
1453
1743
  sourceRevision: Scalars['String']['input'];
1454
1744
  toCurrency: MtwFreightCurrencyInput;
1455
1745
  };
1746
+ export type MtwFreightInvoiceAcceptance = 'NOT_ESTABLISHED';
1747
+ export type MtwFreightInvoiceBlocker = 'EVIDENCE_REQUIRED' | 'INVOICE_REFERENCE_UNKNOWN' | 'SHIPMENT_NOT_LIVE' | 'SUPPLIER_UNKNOWN';
1748
+ export type MtwFreightInvoiceComparableSubtotal = {
1749
+ __typename?: 'MtwFreightInvoiceComparableSubtotal';
1750
+ currency: MtwFreightCurrency;
1751
+ deltaMinor: Scalars['String']['output'];
1752
+ estimateMinor: Scalars['String']['output'];
1753
+ invoiceLineIds: Array<Scalars['ID']['output']>;
1754
+ invoiceMinor: Scalars['String']['output'];
1755
+ payerReference: Scalars['String']['output'];
1756
+ };
1757
+ export type MtwFreightInvoiceComparison = {
1758
+ __typename?: 'MtwFreightInvoiceComparison';
1759
+ actorProvenance: Scalars['String']['output'];
1760
+ correctionReason?: Maybe<Scalars['String']['output']>;
1761
+ createdBy: Scalars['ID']['output'];
1762
+ estimate: MtwFreightInvoiceEstimatePin;
1763
+ estimateDeclaredSubtotals: Array<MtwFreightSubtotal>;
1764
+ evidence: Array<MtwContainerEvidence>;
1765
+ facts: MtwFreightInvoiceFacts;
1766
+ id: Scalars['ID']['output'];
1767
+ idempotencyKey: Scalars['String']['output'];
1768
+ invoiceDeclaredSubtotals: Array<MtwFreightSubtotal>;
1769
+ invoiceIdentityId: Scalars['ID']['output'];
1770
+ methodVersion: Scalars['Int']['output'];
1771
+ onBehalfOf?: Maybe<Scalars['ID']['output']>;
1772
+ outcome: MtwFreightInvoiceOutcome;
1773
+ previousComparisonId?: Maybe<Scalars['ID']['output']>;
1774
+ recordedAt: Scalars['DateTime']['output'];
1775
+ requestFingerprint: Scalars['String']['output'];
1776
+ revision: Scalars['Int']['output'];
1777
+ shipmentId: Scalars['ID']['output'];
1778
+ };
1779
+ export type MtwFreightInvoiceComparisonPage = {
1780
+ __typename?: 'MtwFreightInvoiceComparisonPage';
1781
+ hasMore: Scalars['Boolean']['output'];
1782
+ items: Array<MtwFreightInvoiceComparison>;
1783
+ limit: Scalars['Int']['output'];
1784
+ nextOffset?: Maybe<Scalars['Int']['output']>;
1785
+ offset: Scalars['Int']['output'];
1786
+ total: Scalars['Int']['output'];
1787
+ };
1788
+ export type MtwFreightInvoiceEstimatePin = {
1789
+ __typename?: 'MtwFreightInvoiceEstimatePin';
1790
+ acceptance: MtwFreightInvoiceAcceptance;
1791
+ estimateReference: Scalars['String']['output'];
1792
+ id: Scalars['ID']['output'];
1793
+ kind: MtwFreightKind;
1794
+ quotedAt?: Maybe<Scalars['DateTime']['output']>;
1795
+ sourceReference: Scalars['String']['output'];
1796
+ sourceRevision: Scalars['String']['output'];
1797
+ validFrom?: Maybe<Scalars['DateTime']['output']>;
1798
+ validUntil?: Maybe<Scalars['DateTime']['output']>;
1799
+ version: Scalars['Int']['output'];
1800
+ };
1801
+ export type MtwFreightInvoiceFacts = {
1802
+ __typename?: 'MtwFreightInvoiceFacts';
1803
+ currency: MtwFreightCurrency;
1804
+ invoiceDate?: Maybe<Scalars['String']['output']>;
1805
+ invoiceReference?: Maybe<Scalars['String']['output']>;
1806
+ rows: Array<MtwFreightInvoiceRow>;
1807
+ schemaVersion: Scalars['Int']['output'];
1808
+ sourceReference: Scalars['String']['output'];
1809
+ sourceRevision: Scalars['String']['output'];
1810
+ supplierLabel?: Maybe<Scalars['String']['output']>;
1811
+ supplierReference?: Maybe<Scalars['String']['output']>;
1812
+ };
1813
+ export type MtwFreightInvoiceFactsInput = {
1814
+ currency: MtwFreightCurrencyInput;
1815
+ /** An exact source date; unknown remains null. */
1816
+ invoiceDate?: InputMaybe<Scalars['String']['input']>;
1817
+ invoiceReference?: InputMaybe<Scalars['String']['input']>;
1818
+ rows: Array<MtwFreightInvoiceRowInput>;
1819
+ schemaVersion: Scalars['Int']['input'];
1820
+ sourceReference: Scalars['String']['input'];
1821
+ sourceRevision: Scalars['String']['input'];
1822
+ supplierLabel?: InputMaybe<Scalars['String']['input']>;
1823
+ supplierReference?: InputMaybe<Scalars['String']['input']>;
1824
+ };
1825
+ export type MtwFreightInvoiceFlag = 'AMOUNT_CHANGED' | 'CURRENCY_CHANGED' | 'DUPLICATE_MATCH' | 'EXCLUDED_CHARGE_APPEARED' | 'MATCHED' | 'MISSING_EXPECTED_LINE' | 'PAYER_CHANGED' | 'QUANTITY_CHANGED' | 'RATE_CHANGED' | 'UNKNOWN_COMPARISON' | 'UNMATCHED_INVOICE_LINE';
1826
+ export type MtwFreightInvoiceOutcome = {
1827
+ __typename?: 'MtwFreightInvoiceOutcome';
1828
+ /** Only the explicit recorded comparison coverage, never all supplier charges or liability. */
1829
+ allLinesMatched: Scalars['Boolean']['output'];
1830
+ comparableSubtotals: Array<MtwFreightInvoiceComparableSubtotal>;
1831
+ flags: Array<MtwFreightInvoiceFlag>;
1832
+ missingExpectedLineIds: Array<Scalars['ID']['output']>;
1833
+ rows: Array<MtwFreightInvoiceRowComparison>;
1834
+ unknownExpectedCoverage: Array<MtwFreightInvoiceUnknownCoverage>;
1835
+ };
1836
+ export type MtwFreightInvoicePreview = {
1837
+ __typename?: 'MtwFreightInvoicePreview';
1838
+ blockers: Array<MtwFreightInvoiceBlocker>;
1839
+ estimate: MtwFreightInvoiceEstimatePin;
1840
+ estimateDeclaredSubtotals: Array<MtwFreightSubtotal>;
1841
+ facts: MtwFreightInvoiceFacts;
1842
+ invoiceDeclaredSubtotals: Array<MtwFreightSubtotal>;
1843
+ methodVersion: Scalars['Int']['output'];
1844
+ outcome: MtwFreightInvoiceOutcome;
1845
+ recordable: Scalars['Boolean']['output'];
1846
+ };
1847
+ export type MtwFreightInvoiceReason = 'INCLUDED_CHILD_BILLED_SEPARATELY' | 'MISSING_AMOUNT' | 'MISSING_PAYER' | 'MISSING_QUANTITY' | 'MISSING_RATE' | 'MISSING_UNIT' | 'SCALE_MISMATCH' | 'UNIT_MISMATCH' | 'UNKNOWN_BASIS' | 'UNKNOWN_DISPOSITION' | 'UNKNOWN_EXPECTED_CHARGE_COVERAGE';
1848
+ export type MtwFreightInvoiceRow = {
1849
+ __typename?: 'MtwFreightInvoiceRow';
1850
+ amountMinor?: Maybe<Scalars['String']['output']>;
1851
+ currency: MtwFreightCurrency;
1852
+ description: Scalars['String']['output'];
1853
+ estimateLineId?: Maybe<Scalars['ID']['output']>;
1854
+ id: Scalars['ID']['output'];
1855
+ payerLabel?: Maybe<Scalars['String']['output']>;
1856
+ payerReference?: Maybe<Scalars['String']['output']>;
1857
+ quantity?: Maybe<Scalars['String']['output']>;
1858
+ unit?: Maybe<Scalars['String']['output']>;
1859
+ unitRateMajor?: Maybe<Scalars['String']['output']>;
1860
+ zeroReason?: Maybe<Scalars['String']['output']>;
1861
+ };
1862
+ export type MtwFreightInvoiceRowComparison = {
1863
+ __typename?: 'MtwFreightInvoiceRowComparison';
1864
+ deltaMinor?: Maybe<Scalars['String']['output']>;
1865
+ estimateLineId?: Maybe<Scalars['ID']['output']>;
1866
+ flags: Array<MtwFreightInvoiceFlag>;
1867
+ invoiceLineId: Scalars['ID']['output'];
1868
+ reasons: Array<MtwFreightInvoiceReason>;
1869
+ };
1870
+ /** Manual reported invoice facts. This comparison does not establish liability or approve payment. */
1871
+ export type MtwFreightInvoiceRowInput = {
1872
+ amountMinor?: InputMaybe<Scalars['String']['input']>;
1873
+ currency: MtwFreightCurrencyInput;
1874
+ description: Scalars['String']['input'];
1875
+ estimateLineId?: InputMaybe<Scalars['ID']['input']>;
1876
+ id: Scalars['ID']['input'];
1877
+ payerLabel?: InputMaybe<Scalars['String']['input']>;
1878
+ payerReference?: InputMaybe<Scalars['String']['input']>;
1879
+ quantity?: InputMaybe<Scalars['String']['input']>;
1880
+ unit?: InputMaybe<Scalars['String']['input']>;
1881
+ unitRateMajor?: InputMaybe<Scalars['String']['input']>;
1882
+ zeroReason?: InputMaybe<Scalars['String']['input']>;
1883
+ };
1884
+ export type MtwFreightInvoiceUnknownCoverage = {
1885
+ __typename?: 'MtwFreightInvoiceUnknownCoverage';
1886
+ estimateLineId: Scalars['ID']['output'];
1887
+ flag: MtwFreightInvoiceFlag;
1888
+ reason: MtwFreightInvoiceReason;
1889
+ };
1456
1890
  export type MtwFreightKind = 'ESTIMATE' | 'QUOTE';
1457
1891
  export type MtwFreightLine = {
1458
1892
  __typename?: 'MtwFreightLine';
@@ -1498,6 +1932,7 @@ export type MtwFreightLineTotal = {
1498
1932
  reportingAmountMinor?: Maybe<Scalars['String']['output']>;
1499
1933
  roundedToZero: Scalars['Boolean']['output'];
1500
1934
  };
1935
+ export type MtwFreightLocationKind = 'ADDRESS_LABEL' | 'CUSTOM_LABEL' | 'PORT_LABEL' | 'POSTCODE_LABEL' | 'TERMINAL_LABEL';
1501
1936
  /** Completeness applies only to the recorded required-charge declarations, not all possible charges. */
1502
1937
  export type MtwFreightPreview = {
1503
1938
  __typename?: 'MtwFreightPreview';
@@ -1559,6 +1994,103 @@ export type MtwFreightSubtotal = {
1559
1994
  payerReference?: Maybe<Scalars['String']['output']>;
1560
1995
  totalAmountMinor?: Maybe<Scalars['String']['output']>;
1561
1996
  };
1997
+ export type MtwFreightVolumeUnit = 'FT3' | 'M3';
1998
+ export type MtwFreightWeightUnit = 'KG' | 'LB' | 'TONNE';
1999
+ export type MtwFuelDistanceObservation = {
2000
+ __typename?: 'MtwFuelDistanceObservation';
2001
+ basis: MtwUtilizationDistanceBasis;
2002
+ coverage: MtwTripUtilizationCoverage;
2003
+ intervalFrom: Scalars['String']['output'];
2004
+ intervalUntil: Scalars['String']['output'];
2005
+ metres?: Maybe<Scalars['Int']['output']>;
2006
+ sourceReference?: Maybe<Scalars['String']['output']>;
2007
+ sourceRevision?: Maybe<Scalars['String']['output']>;
2008
+ };
2009
+ export type MtwFuelDistanceObservationInput = {
2010
+ basis: MtwUtilizationDistanceBasis;
2011
+ coverage: MtwTripUtilizationCoverage;
2012
+ intervalFrom: Scalars['String']['input'];
2013
+ intervalUntil: Scalars['String']['input'];
2014
+ metres?: InputMaybe<Scalars['Int']['input']>;
2015
+ sourceReference?: InputMaybe<Scalars['String']['input']>;
2016
+ sourceRevision?: InputMaybe<Scalars['String']['input']>;
2017
+ };
2018
+ export type MtwFuelVolumeObservation = {
2019
+ __typename?: 'MtwFuelVolumeObservation';
2020
+ basis: MtwConsumedFuelBasis;
2021
+ coverage: MtwTripUtilizationCoverage;
2022
+ intervalFrom: Scalars['String']['output'];
2023
+ intervalUntil: Scalars['String']['output'];
2024
+ millilitres?: Maybe<Scalars['Int']['output']>;
2025
+ sourceReference?: Maybe<Scalars['String']['output']>;
2026
+ sourceRevision?: Maybe<Scalars['String']['output']>;
2027
+ };
2028
+ export type MtwFuelVolumeObservationInput = {
2029
+ basis: MtwConsumedFuelBasis;
2030
+ coverage: MtwTripUtilizationCoverage;
2031
+ intervalFrom: Scalars['String']['input'];
2032
+ intervalUntil: Scalars['String']['input'];
2033
+ millilitres?: InputMaybe<Scalars['Int']['input']>;
2034
+ sourceReference?: InputMaybe<Scalars['String']['input']>;
2035
+ sourceRevision?: InputMaybe<Scalars['String']['input']>;
2036
+ };
2037
+ export type MtwImportColumn = {
2038
+ __typename?: 'MtwImportColumn';
2039
+ allowedValues?: Maybe<Array<Scalars['String']['output']>>;
2040
+ description: Scalars['String']['output'];
2041
+ max?: Maybe<Scalars['Float']['output']>;
2042
+ maxLength?: Maybe<Scalars['Int']['output']>;
2043
+ min?: Maybe<Scalars['Float']['output']>;
2044
+ name: Scalars['String']['output'];
2045
+ required: Scalars['Boolean']['output'];
2046
+ type: MtwImportColumnType;
2047
+ };
2048
+ export type MtwImportColumnType = 'BOOLEAN' | 'DATE' | 'EMAIL' | 'ENUM' | 'INTEGER' | 'JSON' | 'NUMBER' | 'STRING';
2049
+ export type MtwImportEntitySpec = {
2050
+ __typename?: 'MtwImportEntitySpec';
2051
+ columns: Array<MtwImportColumn>;
2052
+ entityType: MtwImportEntityType;
2053
+ /** Column that must be unique in the workspace, if any. */
2054
+ keyColumn?: Maybe<Scalars['String']['output']>;
2055
+ };
2056
+ export type MtwImportEntityType = 'CARGO_ITEM' | 'CUSTOMER' | 'DRIVER' | 'VEHICLE' | 'WAREHOUSE';
2057
+ export type MtwImportFormat = 'CSV' | 'JSON';
2058
+ export type MtwImportInput = {
2059
+ /** Import the valid rows even when other rows are invalid. */
2060
+ allowPartial?: InputMaybe<Scalars['Boolean']['input']>;
2061
+ /** The CSV (with a header row) or JSON (array of objects) document, at most 2 MB and 1000 rows. */
2062
+ content: Scalars['String']['input'];
2063
+ /** Validate every row without writing anything. */
2064
+ dryRun?: InputMaybe<Scalars['Boolean']['input']>;
2065
+ format: MtwImportFormat;
2066
+ };
2067
+ export type MtwImportResult = {
2068
+ __typename?: 'MtwImportResult';
2069
+ createdIds: Array<Scalars['ID']['output']>;
2070
+ dryRun: Scalars['Boolean']['output'];
2071
+ entityType: MtwImportEntityType;
2072
+ errors: Array<MtwImportRowError>;
2073
+ /** True when more row errors exist than are returned (the first 500 are returned). */
2074
+ errorsTruncated: Scalars['Boolean']['output'];
2075
+ failedRows: Scalars['Int']['output'];
2076
+ importedRows: Scalars['Int']['output'];
2077
+ status: MtwImportStatus;
2078
+ totalRows: Scalars['Int']['output'];
2079
+ validRows: Scalars['Int']['output'];
2080
+ };
2081
+ export type MtwImportRowError = {
2082
+ __typename?: 'MtwImportRowError';
2083
+ field?: Maybe<Scalars['String']['output']>;
2084
+ message: Scalars['String']['output'];
2085
+ /** 1-based data row number (the CSV header is not counted). */
2086
+ row: Scalars['Int']['output'];
2087
+ };
2088
+ /**
2089
+ * DRY_RUN: validated only, nothing written. COMPLETED: every row imported.
2090
+ * PARTIAL: allowPartial was set and some rows failed. REJECTED: some rows were
2091
+ * invalid and allowPartial was not set, so nothing was written.
2092
+ */
2093
+ export type MtwImportStatus = 'COMPLETED' | 'DRY_RUN' | 'PARTIAL' | 'REJECTED';
1562
2094
  /** A recorded manual issuer review; workspace privileges do not establish professional qualifications. */
1563
2095
  export type MtwInspectorQualification = {
1564
2096
  __typename?: 'MtwInspectorQualification';
@@ -1705,6 +2237,24 @@ export type MtwInventoryTransferResult = {
1705
2237
  destination: MtwInventoryItem;
1706
2238
  source: MtwInventoryItem;
1707
2239
  };
2240
+ export type MtwMarketplaceStats = {
2241
+ __typename?: 'MtwMarketplaceStats';
2242
+ activeProviders: Scalars['Int']['output'];
2243
+ /** Average provider rating, or null when no provider has been rated. */
2244
+ avgRating?: Maybe<Scalars['Float']['output']>;
2245
+ offerings: Scalars['Int']['output'];
2246
+ providers: Scalars['Int']['output'];
2247
+ verifiedProviders: Scalars['Int']['output'];
2248
+ };
2249
+ export type MtwMoveReviewSource = {
2250
+ __typename?: 'MtwMoveReviewSource';
2251
+ reference: Scalars['String']['output'];
2252
+ revision: Scalars['String']['output'];
2253
+ };
2254
+ export type MtwMoveReviewSourceInput = {
2255
+ reference: Scalars['String']['input'];
2256
+ revision: Scalars['String']['input'];
2257
+ };
1708
2258
  /** An estimate from the caller's own inputs — not a quote from anyone. */
1709
2259
  export type MtwOwnFleetEstimate = {
1710
2260
  __typename?: 'MtwOwnFleetEstimate';
@@ -1718,6 +2268,145 @@ export type MtwOwnFleetEstimate = {
1718
2268
  /** Cheapest courier price minus this estimate. Positive means running your own vehicle is cheaper. Null when no courier quoted. */
1719
2269
  savingsVsCheapestCourier?: Maybe<Scalars['Float']['output']>;
1720
2270
  };
2271
+ export type MtwOwnedEpodShipmentStatus = {
2272
+ __typename?: 'MtwOwnedEpodShipmentStatus';
2273
+ id: Scalars['ID']['output'];
2274
+ status: ShipmentStatus;
2275
+ statusRevision: Scalars['Int']['output'];
2276
+ };
2277
+ export type MtwPalletAdditionalPackingInput = {
2278
+ massG?: InputMaybe<Scalars['String']['input']>;
2279
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2280
+ };
2281
+ export type MtwPalletBaseInput = {
2282
+ heightMm?: InputMaybe<Scalars['Int']['input']>;
2283
+ lengthMm?: InputMaybe<Scalars['Int']['input']>;
2284
+ maxPayloadMassG?: InputMaybe<Scalars['String']['input']>;
2285
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2286
+ tareMassG?: InputMaybe<Scalars['String']['input']>;
2287
+ widthMm?: InputMaybe<Scalars['Int']['input']>;
2288
+ };
2289
+ export type MtwPalletBound = {
2290
+ __typename?: 'MtwPalletBound';
2291
+ reason: Scalars['String']['output'];
2292
+ status: MtwPalletBoundStatus;
2293
+ };
2294
+ export type MtwPalletBoundStatus = 'FAIL' | 'PASS' | 'UNKNOWN';
2295
+ export type MtwPalletBounds = {
2296
+ __typename?: 'MtwPalletBounds';
2297
+ loadedPalletGrossMass: MtwPalletBound;
2298
+ palletFootprintWithinLoadEnvelope: MtwPalletBound;
2299
+ palletPayloadMass: MtwPalletBound;
2300
+ permittedUprightYaw: MtwPalletBound;
2301
+ placedContainment: MtwPalletBound;
2302
+ placedNonOverlap: MtwPalletBound;
2303
+ reportedSingleLayerHeight: MtwPalletBound;
2304
+ };
2305
+ export type MtwPalletClassification = 'GEOMETRIC_PROPOSAL_ONLY';
2306
+ export type MtwPalletClearanceInput = {
2307
+ betweenPackagesMm?: InputMaybe<Scalars['Int']['input']>;
2308
+ perimeterMm?: InputMaybe<Scalars['Int']['input']>;
2309
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2310
+ topMm?: InputMaybe<Scalars['Int']['input']>;
2311
+ };
2312
+ /** Read-only supplied-measurement geometry; no persistence, stock change or release authority. */
2313
+ export type MtwPalletGeometryPreview = {
2314
+ __typename?: 'MtwPalletGeometryPreview';
2315
+ bounds: MtwPalletBounds;
2316
+ classification: MtwPalletClassification;
2317
+ layoutStatus: MtwPalletLayoutStatus;
2318
+ method: MtwPalletMethod;
2319
+ placedQuantity: Scalars['Int']['output'];
2320
+ placements: Array<MtwPalletPlacement>;
2321
+ requestedGrossMassG?: Maybe<Scalars['String']['output']>;
2322
+ requestedPayloadMassG?: Maybe<Scalars['String']['output']>;
2323
+ requestedQuantity: Scalars['Int']['output'];
2324
+ sources: MtwPalletSources;
2325
+ units: MtwPalletUnits;
2326
+ unplaced: Array<MtwPalletUnplaced>;
2327
+ unsupported: MtwPalletUnsupported;
2328
+ };
2329
+ export type MtwPalletGeometryPreviewInput = {
2330
+ additionalPacking: MtwPalletAdditionalPackingInput;
2331
+ clearance: MtwPalletClearanceInput;
2332
+ loadEnvelope?: InputMaybe<MtwPalletLoadEnvelopeInput>;
2333
+ mode: MtwPalletMode;
2334
+ packages: Array<MtwPalletPackageInput>;
2335
+ pallet: MtwPalletBaseInput;
2336
+ units: MtwPalletUnits;
2337
+ };
2338
+ export type MtwPalletLayoutStatus = 'NO_LAYOUT_FOUND_BY_METHOD' | 'PLACED_BY_METHOD' | 'UNKNOWN';
2339
+ export type MtwPalletLoadEnvelopeInput = {
2340
+ lengthMm?: InputMaybe<Scalars['Int']['input']>;
2341
+ maxGrossMassG?: InputMaybe<Scalars['String']['input']>;
2342
+ maxHeightMm?: InputMaybe<Scalars['Int']['input']>;
2343
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2344
+ widthMm?: InputMaybe<Scalars['Int']['input']>;
2345
+ };
2346
+ export type MtwPalletMeasurementSource = {
2347
+ __typename?: 'MtwPalletMeasurementSource';
2348
+ reference: Scalars['String']['output'];
2349
+ version: Scalars['String']['output'];
2350
+ };
2351
+ export type MtwPalletMeasurementSourceInput = {
2352
+ reference: Scalars['String']['input'];
2353
+ version: Scalars['String']['input'];
2354
+ };
2355
+ export type MtwPalletMethod = 'DETERMINISTIC_SINGLE_LAYER_SHELF_V1';
2356
+ export type MtwPalletMode = 'UPRIGHT_SINGLE_LAYER';
2357
+ export type MtwPalletPackageInput = {
2358
+ allowedYawDegrees?: InputMaybe<Array<Scalars['Int']['input']>>;
2359
+ grossMassG?: InputMaybe<Scalars['String']['input']>;
2360
+ heightMm?: InputMaybe<Scalars['Int']['input']>;
2361
+ id: Scalars['ID']['input'];
2362
+ lengthMm?: InputMaybe<Scalars['Int']['input']>;
2363
+ quantity: Scalars['Int']['input'];
2364
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2365
+ upright?: InputMaybe<Scalars['Boolean']['input']>;
2366
+ widthMm?: InputMaybe<Scalars['Int']['input']>;
2367
+ };
2368
+ export type MtwPalletPackageSource = {
2369
+ __typename?: 'MtwPalletPackageSource';
2370
+ packageId: Scalars['ID']['output'];
2371
+ source?: Maybe<MtwPalletMeasurementSource>;
2372
+ };
2373
+ export type MtwPalletPlacement = {
2374
+ __typename?: 'MtwPalletPlacement';
2375
+ heightMm?: Maybe<Scalars['Int']['output']>;
2376
+ lengthMm: Scalars['Int']['output'];
2377
+ packageId: Scalars['ID']['output'];
2378
+ unit: Scalars['Int']['output'];
2379
+ widthMm: Scalars['Int']['output'];
2380
+ xMm: Scalars['Int']['output'];
2381
+ yMm: Scalars['Int']['output'];
2382
+ yawDegrees: Scalars['Int']['output'];
2383
+ zMm?: Maybe<Scalars['Int']['output']>;
2384
+ };
2385
+ export type MtwPalletSources = {
2386
+ __typename?: 'MtwPalletSources';
2387
+ additionalPacking?: Maybe<MtwPalletMeasurementSource>;
2388
+ clearance?: Maybe<MtwPalletMeasurementSource>;
2389
+ loadEnvelope?: Maybe<MtwPalletMeasurementSource>;
2390
+ packages: Array<MtwPalletPackageSource>;
2391
+ pallet?: Maybe<MtwPalletMeasurementSource>;
2392
+ };
2393
+ export type MtwPalletUnits = 'MM_G';
2394
+ export type MtwPalletUnplaced = {
2395
+ __typename?: 'MtwPalletUnplaced';
2396
+ packageId: Scalars['ID']['output'];
2397
+ quantity: Scalars['Int']['output'];
2398
+ };
2399
+ export type MtwPalletUnsupported = {
2400
+ __typename?: 'MtwPalletUnsupported';
2401
+ additionalPackingGeometry: MtwPalletUnsupportedStatus;
2402
+ centreOfGravityAndStability: MtwPalletUnsupportedStatus;
2403
+ handling: MtwPalletUnsupportedStatus;
2404
+ loadingAndUnloadingPath: MtwPalletUnsupportedStatus;
2405
+ securing: MtwPalletUnsupportedStatus;
2406
+ segregationAndCargoCompatibility: MtwPalletUnsupportedStatus;
2407
+ supportAndFloorContactLoads: MtwPalletUnsupportedStatus;
2408
+ };
2409
+ export type MtwPalletUnsupportedStatus = 'UNKNOWN';
1721
2410
  export type MtwPickIntentLine = {
1722
2411
  __typename?: 'MtwPickIntentLine';
1723
2412
  applicableProfile?: Maybe<MtwPickIntentProfile>;
@@ -1777,6 +2466,44 @@ export type MtwPickPreparation = {
1777
2466
  evaluatedAt: Scalars['DateTime']['output'];
1778
2467
  source: MtwPickIntentLine;
1779
2468
  };
2469
+ /** Immutable human review only. It reserves no stock and confers no physical execution or qualification. */
2470
+ export type MtwPickReview = {
2471
+ __typename?: 'MtwPickReview';
2472
+ actions: Array<MtwPickReviewAction>;
2473
+ classification: Scalars['String']['output'];
2474
+ evidence: Array<MtwContainerEvidence>;
2475
+ handlingPolicy?: Maybe<MtwMoveReviewSource>;
2476
+ id: Scalars['ID']['output'];
2477
+ idempotencyKey: Scalars['String']['output'];
2478
+ intentHash: Scalars['String']['output'];
2479
+ kind: MtwPickReviewKind;
2480
+ note: Scalars['String']['output'];
2481
+ previousDecisionId?: Maybe<Scalars['ID']['output']>;
2482
+ quantityCeiling?: Maybe<Scalars['Int']['output']>;
2483
+ recordedAt: Scalars['DateTime']['output'];
2484
+ reviewerActorId: Scalars['ID']['output'];
2485
+ sop?: Maybe<MtwMoveReviewSource>;
2486
+ subjectActorId: Scalars['ID']['output'];
2487
+ taskId: Scalars['ID']['output'];
2488
+ validFrom?: Maybe<Scalars['DateTime']['output']>;
2489
+ validUntil?: Maybe<Scalars['DateTime']['output']>;
2490
+ version: Scalars['Int']['output'];
2491
+ };
2492
+ export type MtwPickReviewAction = 'RELEASE_STAGED_CUSTODY' | 'RELEASE_UNPICKED' | 'RESERVE' | 'SHORT_PICK' | 'STAGE';
2493
+ export type MtwPickReviewKind = 'APPROVE' | 'REJECT' | 'REVOKE';
2494
+ export type MtwPickReviewPage = {
2495
+ __typename?: 'MtwPickReviewPage';
2496
+ evaluatedAt: Scalars['DateTime']['output'];
2497
+ hasMore: Scalars['Boolean']['output'];
2498
+ items: Array<MtwPickReview>;
2499
+ latestDecision?: Maybe<MtwPickReview>;
2500
+ limit: Scalars['Int']['output'];
2501
+ nextOffset?: Maybe<Scalars['Int']['output']>;
2502
+ offset: Scalars['Int']['output'];
2503
+ reviewState: MtwPickReviewState;
2504
+ total: Scalars['Int']['output'];
2505
+ };
2506
+ export type MtwPickReviewState = 'APPROVED_REVIEW_ONLY' | 'NOT_CURRENT' | 'REJECTED' | 'REVOKED' | 'UNREVIEWED';
1780
2507
  /** Immutable reported planning intent. It reserves no stock and grants no execution authority. */
1781
2508
  export type MtwPickTask = {
1782
2509
  __typename?: 'MtwPickTask';
@@ -2190,6 +2917,48 @@ export type MtwRevenueMetrics = {
2190
2917
  deliveredRevenue: Scalars['Float']['output'];
2191
2918
  totalRevenue: Scalars['Float']['output'];
2192
2919
  };
2920
+ /**
2921
+ * Deterministic delivery-risk forecast for a shipment, computed from its legs,
2922
+ * routes, tracking events, assigned vehicle and the carrier's recent history.
2923
+ */
2924
+ export type MtwRiskForecast = {
2925
+ __typename?: 'MtwRiskForecast';
2926
+ /** True when the promise is still in the future but predicted to be missed. */
2927
+ atRisk: Scalars['Boolean']['output'];
2928
+ /** True when the promised delivery has already passed without delivery. */
2929
+ breached: Scalars['Boolean']['output'];
2930
+ evaluatedAt: Scalars['DateTime']['output'];
2931
+ /** Forecasting method, e.g. DETERMINISTIC_V1. */
2932
+ method: Scalars['String']['output'];
2933
+ predictedDeliveryEarliest?: Maybe<Scalars['DateTime']['output']>;
2934
+ predictedDeliveryLatest?: Maybe<Scalars['DateTime']['output']>;
2935
+ predictedSlipMinutes: Scalars['Int']['output'];
2936
+ promisedDelivery?: Maybe<Scalars['DateTime']['output']>;
2937
+ recommendedAction: MtwRiskRecommendedAction;
2938
+ /** Name of the mutation that carries out the recommended action, if any. */
2939
+ recommendedMutation?: Maybe<Scalars['String']['output']>;
2940
+ riskLevel: MtwRiskLevel;
2941
+ riskScore: Scalars['Int']['output'];
2942
+ shipmentId: Scalars['ID']['output'];
2943
+ shipmentNumber: Scalars['String']['output'];
2944
+ signals: Array<MtwRiskSignal>;
2945
+ status: ShipmentStatus;
2946
+ };
2947
+ export type MtwRiskLevel = 'HIGH' | 'LOW' | 'MEDIUM' | 'NONE';
2948
+ export type MtwRiskRecommendedAction = 'MONITOR' | 'NONE' | 'REASSIGN_VEHICLE' | 'REPROMISE_DELIVERY' | 'REQUEST_TRACKING_UPDATE';
2949
+ /**
2950
+ * One piece of evidence behind a risk forecast. `weight` is the number of risk
2951
+ * score points it contributed; `minutes` is the time behind plan (or without
2952
+ * tracking), `ratio` the carrier late-delivery rate.
2953
+ */
2954
+ export type MtwRiskSignal = {
2955
+ __typename?: 'MtwRiskSignal';
2956
+ code: MtwRiskSignalCode;
2957
+ minutes?: Maybe<Scalars['Int']['output']>;
2958
+ ratio?: Maybe<Scalars['Float']['output']>;
2959
+ weight: Scalars['Int']['output'];
2960
+ };
2961
+ export type MtwRiskSignalCode = 'CARRIER_LATE_HISTORY' | 'EXCESS_DWELL' | 'LEG_SLIP' | 'OPEN_LEG_OVERDUE' | 'ROUTE_DURATION_OVERRUN' | 'TRACKING_STALE' | 'VEHICLE_UNAVAILABLE';
2193
2962
  export type MtwRoute = {
2194
2963
  __typename?: 'MtwRoute';
2195
2964
  actualDistance?: Maybe<Scalars['Float']['output']>;
@@ -2226,6 +2995,99 @@ export type MtwRouteStats = {
2226
2995
  totalDistance: Scalars['Float']['output'];
2227
2996
  totalDuration: Scalars['Float']['output'];
2228
2997
  };
2998
+ /** Whether the provider currently has capacity for an offering. */
2999
+ export type MtwServiceAvailability = 'AVAILABLE' | 'LIMITED' | 'UNAVAILABLE';
3000
+ /** A discoverable service a provider offers, with indicative price and availability. */
3001
+ export type MtwServiceOffering = {
3002
+ __typename?: 'MtwServiceOffering';
3003
+ availability: MtwServiceAvailability;
3004
+ category: MtwServiceOfferingCategory;
3005
+ createdAt: Scalars['DateTime']['output'];
3006
+ createdBy: Scalars['String']['output'];
3007
+ /** ISO 4217 currency code. */
3008
+ currency: Scalars['String']['output'];
3009
+ deletedAt?: Maybe<Scalars['DateTime']['output']>;
3010
+ description?: Maybe<Scalars['String']['output']>;
3011
+ id: Scalars['ID']['output'];
3012
+ isActive: Scalars['Boolean']['output'];
3013
+ name: Scalars['String']['output'];
3014
+ onBehalfOf?: Maybe<Scalars['String']['output']>;
3015
+ /** Indicative price in `currency`, per `pricingUnit`. Null when priced on request. */
3016
+ price?: Maybe<Scalars['Float']['output']>;
3017
+ /** What the price is charged per, for example "per km", "per pallet" or "per shipment". */
3018
+ pricingUnit?: Maybe<Scalars['String']['output']>;
3019
+ /** The provider offering this service. Resolves even if the provider was later deleted. */
3020
+ provider?: Maybe<MtwServiceProvider>;
3021
+ providerId: Scalars['ID']['output'];
3022
+ /** Typical door-to-door transit time in days. */
3023
+ transitDays?: Maybe<Scalars['Int']['output']>;
3024
+ updatedAt: Scalars['DateTime']['output'];
3025
+ updatedBy?: Maybe<Scalars['String']['output']>;
3026
+ workspaceId: Scalars['ID']['output'];
3027
+ };
3028
+ /** What an offering provides. */
3029
+ export type MtwServiceOfferingCategory = 'AIR_FREIGHT' | 'COLD_CHAIN' | 'CUSTOMS_CLEARANCE' | 'EXPRESS' | 'FULL_TRUCKLOAD' | 'LAST_MILE' | 'LESS_THAN_TRUCKLOAD' | 'OCEAN_FREIGHT' | 'OTHER' | 'RAIL_FREIGHT' | 'WAREHOUSING';
3030
+ export type MtwServiceOfferingFilterInput = {
3031
+ availability?: InputMaybe<MtwServiceAvailability>;
3032
+ category?: InputMaybe<MtwServiceOfferingCategory>;
3033
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
3034
+ /** Only offerings at or below this price. */
3035
+ maxPrice?: InputMaybe<Scalars['Float']['input']>;
3036
+ providerId?: InputMaybe<Scalars['ID']['input']>;
3037
+ /** Case-insensitive match on name and description. */
3038
+ search?: InputMaybe<Scalars['String']['input']>;
3039
+ };
3040
+ /**
3041
+ * A vetted service provider (carrier, 3PL, warehouse, specialist) in this workspace's marketplace
3042
+ * directory. A provider becomes a shipment's carrier through `assignShipmentServiceProvider`.
3043
+ */
3044
+ export type MtwServiceProvider = {
3045
+ __typename?: 'MtwServiceProvider';
3046
+ /** Free-form contact details (for example contactName, email, phone, website). */
3047
+ contactInfo?: Maybe<Scalars['JSON']['output']>;
3048
+ createdAt: Scalars['DateTime']['output'];
3049
+ createdBy: Scalars['String']['output'];
3050
+ deletedAt?: Maybe<Scalars['DateTime']['output']>;
3051
+ description?: Maybe<Scalars['String']['output']>;
3052
+ id: Scalars['ID']['output'];
3053
+ isActive: Scalars['Boolean']['output'];
3054
+ /** Set by the workspace once it has vetted the provider. */
3055
+ isVerified: Scalars['Boolean']['output'];
3056
+ name: Scalars['String']['output'];
3057
+ /** The provider's live (not deleted) offerings, newest first. */
3058
+ offerings: Array<MtwServiceOffering>;
3059
+ /** Number of live offerings. */
3060
+ offeringsCount: Scalars['Int']['output'];
3061
+ onBehalfOf?: Maybe<Scalars['String']['output']>;
3062
+ /** The workspace's own rating of this provider, 0 to 5. Null when not yet rated. */
3063
+ rating?: Maybe<Scalars['Float']['output']>;
3064
+ /** Regions, lanes or cities the provider covers. */
3065
+ serviceAreas: Array<Scalars['String']['output']>;
3066
+ /** Short service tags, for example "reefer" or "hazmat". */
3067
+ services: Array<Scalars['String']['output']>;
3068
+ type: MtwServiceProviderType;
3069
+ updatedAt: Scalars['DateTime']['output'];
3070
+ updatedBy?: Maybe<Scalars['String']['output']>;
3071
+ workspaceId: Scalars['ID']['output'];
3072
+ };
3073
+ /**
3074
+ * A vetted service provider (carrier, 3PL, warehouse, specialist) in this workspace's marketplace
3075
+ * directory. A provider becomes a shipment's carrier through `assignShipmentServiceProvider`.
3076
+ */
3077
+ export type MtwServiceProviderOfferingsArgs = {
3078
+ pagination?: InputMaybe<PaginationInput>;
3079
+ };
3080
+ export type MtwServiceProviderFilterInput = {
3081
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
3082
+ isVerified?: InputMaybe<Scalars['Boolean']['input']>;
3083
+ /** Only providers with at least this rating. */
3084
+ minRating?: InputMaybe<Scalars['Float']['input']>;
3085
+ /** Case-insensitive match on name, description, services and service areas. */
3086
+ search?: InputMaybe<Scalars['String']['input']>;
3087
+ type?: InputMaybe<MtwServiceProviderType>;
3088
+ };
3089
+ /** Kind of service provider in the workspace marketplace directory (BOFF-3988, MOV-UC-13). */
3090
+ export type MtwServiceProviderType = 'CARRIER' | 'COURIER' | 'CUSTOMS_BROKER' | 'FREIGHT_FORWARDER' | 'LAST_MILE' | 'OTHER' | 'THIRD_PARTY_LOGISTICS' | 'WAREHOUSE';
2229
3091
  export type MtwShipment = {
2230
3092
  __typename?: 'MtwShipment';
2231
3093
  actualDelivery?: Maybe<Scalars['DateTime']['output']>;
@@ -2238,17 +3100,30 @@ export type MtwShipment = {
2238
3100
  deletedAt?: Maybe<Scalars['DateTime']['output']>;
2239
3101
  deliveryJob?: Maybe<MtwDeliveryJob>;
2240
3102
  deliveryJobId?: Maybe<Scalars['ID']['output']>;
3103
+ designatedIntegrationId?: Maybe<Scalars['ID']['output']>;
2241
3104
  destination: Scalars['JSON']['output'];
2242
3105
  estimatedDelivery?: Maybe<Scalars['DateTime']['output']>;
2243
3106
  freightCurrency?: Maybe<Scalars['String']['output']>;
2244
3107
  id: Scalars['ID']['output'];
2245
3108
  isMultiModal: Scalars['Boolean']['output'];
2246
3109
  legs: Array<MtwShipmentLeg>;
3110
+ maxFutureSkewSeconds?: Maybe<Scalars['Int']['output']>;
3111
+ maxSourceAgeSeconds?: Maybe<Scalars['Int']['output']>;
2247
3112
  onBehalfOf: Scalars['String']['output'];
2248
3113
  origin: Scalars['JSON']['output'];
2249
3114
  primaryMode: TransportMode;
3115
+ /**
3116
+ * The marketplace provider this shipment's carrier points at, when `carrierId` references one.
3117
+ * Resolves even if the provider was later deleted, so historical shipments keep their carrier.
3118
+ */
3119
+ serviceProvider?: Maybe<MtwServiceProvider>;
2250
3120
  shipmentNumber: Scalars['String']['output'];
2251
3121
  status: ShipmentStatus;
3122
+ statusAuthority: ShipmentStatusAuthority;
3123
+ statusAuthorityEpoch: Scalars['Int']['output'];
3124
+ statusBasisEventId?: Maybe<Scalars['ID']['output']>;
3125
+ statusBasisSourceTime?: Maybe<Scalars['DateTime']['output']>;
3126
+ statusRevision: Scalars['Int']['output'];
2252
3127
  storeOrder?: Maybe<StoreOrder>;
2253
3128
  storeOrderId?: Maybe<Scalars['ID']['output']>;
2254
3129
  totalFreightCost?: Maybe<Scalars['Float']['output']>;
@@ -2304,6 +3179,26 @@ export type MtwShipmentLeg = {
2304
3179
  widthCm?: Maybe<Scalars['Float']['output']>;
2305
3180
  workspaceId: Scalars['ID']['output'];
2306
3181
  };
3182
+ export type MtwShipmentStatusDecision = {
3183
+ __typename?: 'MtwShipmentStatusDecision';
3184
+ authorityEpoch: Scalars['Int']['output'];
3185
+ configuredIntegrationId?: Maybe<Scalars['ID']['output']>;
3186
+ configuredMaxFutureSkewSeconds?: Maybe<Scalars['Int']['output']>;
3187
+ configuredMaxSourceAgeSeconds?: Maybe<Scalars['Int']['output']>;
3188
+ createdBy: Scalars['ID']['output'];
3189
+ heldReason?: Maybe<ShipmentStatusHeldReason>;
3190
+ id: Scalars['ID']['output'];
3191
+ observedRevision: Scalars['Int']['output'];
3192
+ origin: ShipmentStatusDecisionOrigin;
3193
+ outcome: ShipmentStatusDecisionOutcome;
3194
+ priorStatus: ShipmentStatus;
3195
+ proofId?: Maybe<Scalars['ID']['output']>;
3196
+ reason?: Maybe<Scalars['String']['output']>;
3197
+ recordedAt: Scalars['DateTime']['output'];
3198
+ resultRevision: Scalars['Int']['output'];
3199
+ resultStatus: ShipmentStatus;
3200
+ trackingEventId?: Maybe<Scalars['ID']['output']>;
3201
+ };
2307
3202
  export type MtwShippingQuote = {
2308
3203
  __typename?: 'MtwShippingQuote';
2309
3204
  courierId: Scalars['String']['output'];
@@ -2561,13 +3456,48 @@ export type MtwStockObservationPage = {
2561
3456
  total: Scalars['Int']['output'];
2562
3457
  };
2563
3458
  export type MtwStockObservationStatus = 'UNRESOLVED';
3459
+ /**
3460
+ * A tracking alert. `alertType` is `DELAYED` once the promised delivery has
3461
+ * passed, or `AT_RISK` when the deterministic forecast predicts the promise will
3462
+ * be missed while it is still in the future. The risk fields are set only for
3463
+ * `AT_RISK` alerts.
3464
+ */
2564
3465
  export type MtwTrackingAlert = {
2565
3466
  __typename?: 'MtwTrackingAlert';
3467
+ /** True when an operator acknowledged this alert against the current promise. */
3468
+ acknowledged: Scalars['Boolean']['output'];
3469
+ acknowledgedAt?: Maybe<Scalars['DateTime']['output']>;
3470
+ acknowledgedBy?: Maybe<Scalars['ID']['output']>;
2566
3471
  alertType: Scalars['String']['output'];
3472
+ /** Stable alert id, `<shipmentId>:<alertType>`. */
3473
+ id: Scalars['ID']['output'];
2567
3474
  message: Scalars['String']['output'];
3475
+ predictedDelivery?: Maybe<Scalars['DateTime']['output']>;
3476
+ /** The shipment's promised delivery (estimatedDelivery) the alert was raised against. */
3477
+ promisedDelivery?: Maybe<Scalars['DateTime']['output']>;
3478
+ riskScore?: Maybe<Scalars['Int']['output']>;
2568
3479
  shipmentId: Scalars['ID']['output'];
2569
3480
  shipmentNumber: Scalars['String']['output'];
3481
+ signals?: Maybe<Array<MtwRiskSignalCode>>;
3482
+ };
3483
+ /**
3484
+ * A persisted acknowledgement of a tracking alert. It holds while the shipment
3485
+ * keeps the promised delivery it was recorded against; re-promising the shipment
3486
+ * re-raises the alert.
3487
+ */
3488
+ export type MtwTrackingAlertAcknowledgement = {
3489
+ __typename?: 'MtwTrackingAlertAcknowledgement';
3490
+ acknowledged: Scalars['Boolean']['output'];
3491
+ acknowledgedAt: Scalars['DateTime']['output'];
3492
+ acknowledgedBy: Scalars['ID']['output'];
3493
+ alertType: MtwTrackingAlertType;
3494
+ /** Same id as the acknowledged `MtwTrackingAlert`. */
3495
+ id: Scalars['ID']['output'];
3496
+ promisedDelivery?: Maybe<Scalars['DateTime']['output']>;
3497
+ shipmentId: Scalars['ID']['output'];
2570
3498
  };
3499
+ /** Alert types `trackingAlerts` raises; used to acknowledge one. */
3500
+ export type MtwTrackingAlertType = 'AT_RISK' | 'DELAYED';
2571
3501
  export type MtwTrackingEvent = {
2572
3502
  __typename?: 'MtwTrackingEvent';
2573
3503
  context?: Maybe<OperationContext>;
@@ -2579,7 +3509,11 @@ export type MtwTrackingEvent = {
2579
3509
  id: Scalars['ID']['output'];
2580
3510
  location?: Maybe<Scalars['JSON']['output']>;
2581
3511
  onBehalfOf: Scalars['String']['output'];
3512
+ providerEventTime?: Maybe<Scalars['DateTime']['output']>;
3513
+ serverReceivedAt?: Maybe<Scalars['DateTime']['output']>;
2582
3514
  shipmentId: Scalars['ID']['output'];
3515
+ sourceIntegrationId?: Maybe<Scalars['ID']['output']>;
3516
+ sourceTimestampProvenance: TrackingSourceTimeProvenance;
2583
3517
  timestamp: Scalars['DateTime']['output'];
2584
3518
  updatedAt: Scalars['DateTime']['output'];
2585
3519
  updatedBy?: Maybe<Scalars['String']['output']>;
@@ -2658,6 +3592,28 @@ export type MtwTripUtilizationSummary = {
2658
3592
  tripId: Scalars['ID']['output'];
2659
3593
  unknownFactsSegmentCount: Scalars['Int']['output'];
2660
3594
  };
3595
+ export type MtwUpdateServiceOfferingInput = {
3596
+ availability?: InputMaybe<MtwServiceAvailability>;
3597
+ category?: InputMaybe<MtwServiceOfferingCategory>;
3598
+ currency?: InputMaybe<Scalars['String']['input']>;
3599
+ description?: InputMaybe<Scalars['String']['input']>;
3600
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
3601
+ name?: InputMaybe<Scalars['String']['input']>;
3602
+ price?: InputMaybe<Scalars['Float']['input']>;
3603
+ pricingUnit?: InputMaybe<Scalars['String']['input']>;
3604
+ transitDays?: InputMaybe<Scalars['Int']['input']>;
3605
+ };
3606
+ export type MtwUpdateServiceProviderInput = {
3607
+ contactInfo?: InputMaybe<Scalars['JSON']['input']>;
3608
+ description?: InputMaybe<Scalars['String']['input']>;
3609
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
3610
+ isVerified?: InputMaybe<Scalars['Boolean']['input']>;
3611
+ name?: InputMaybe<Scalars['String']['input']>;
3612
+ rating?: InputMaybe<Scalars['Float']['input']>;
3613
+ serviceAreas?: InputMaybe<Array<Scalars['String']['input']>>;
3614
+ services?: InputMaybe<Array<Scalars['String']['input']>>;
3615
+ type?: InputMaybe<MtwServiceProviderType>;
3616
+ };
2661
3617
  export type MtwUtilizationCapacityBasis = 'MEASURED' | 'RATED';
2662
3618
  export type MtwUtilizationDistanceBasis = 'MEASURED' | 'OPERATOR_ESTIMATE' | 'PROVIDER_ESTIMATE';
2663
3619
  export type MtwUtilizationDistanceCoverage = {
@@ -2793,10 +3749,18 @@ export type Mutation = {
2793
3749
  __typename?: 'Mutation';
2794
3750
  _empty?: Maybe<Scalars['String']['output']>;
2795
3751
  acceptMtwReuseReservation: MtwReuseReservation;
3752
+ acknowledgeMtwTrackingAlert: MtwTrackingAlertAcknowledgement;
2796
3753
  addShipmentLeg: MtwShipmentLeg;
2797
3754
  addTrackingEvent: MtwTrackingEvent;
2798
3755
  adjustInventoryStock: MtwInventoryItem;
3756
+ approveMtwPickTask: MtwPickReview;
2799
3757
  assignDriverVehicle: MtwDriver;
3758
+ /**
3759
+ * Makes a marketplace provider the shipment's carrier (sets `carrierId`), or clears the carrier when
3760
+ * `providerId` is null. Inactive or unverified providers are allowed; the flags are surfaced so the
3761
+ * operator decides.
3762
+ */
3763
+ assignShipmentServiceProvider: MtwShipment;
2800
3764
  /**
2801
3765
  * Type B self-scoped capture: the calling actor must be the Driver assigned
2802
3766
  * to `input.deliveryJobId` (resolved via Driver.userId), enforced in the
@@ -2805,6 +3769,8 @@ export type Mutation = {
2805
3769
  */
2806
3770
  captureEpod: MtwProofOfDelivery;
2807
3771
  closeMtwContainerCycle: MtwContainerCycle;
3772
+ compareMtwFreightInvoice: MtwFreightInvoiceComparison;
3773
+ configureShipmentStatusSource: MtwShipment;
2808
3774
  createCargoItem: MtwCargoItem;
2809
3775
  createCustomer: MtwCustomer;
2810
3776
  createDeliveryJob: MtwDeliveryJob;
@@ -2814,6 +3780,8 @@ export type Mutation = {
2814
3780
  createInventoryTransaction: MtwInventoryTransaction;
2815
3781
  createMtwPickTaskIntent: MtwPickTask;
2816
3782
  createRoute: MtwRoute;
3783
+ createServiceOffering: MtwServiceOffering;
3784
+ createServiceProvider: MtwServiceProvider;
2817
3785
  createShipment: MtwShipment;
2818
3786
  createVehicle: MtwVehicle;
2819
3787
  createWarehouse: MtwWarehouse;
@@ -2825,11 +3793,19 @@ export type Mutation = {
2825
3793
  deleteIntegration: Scalars['Boolean']['output'];
2826
3794
  deleteInventoryItem: Scalars['Boolean']['output'];
2827
3795
  deleteRoute: Scalars['Boolean']['output'];
3796
+ deleteServiceOffering: Scalars['Boolean']['output'];
3797
+ /** Soft-deletes the provider and its offerings. Shipments that already reference it keep the reference. */
3798
+ deleteServiceProvider: Scalars['Boolean']['output'];
2828
3799
  deleteShipment: Scalars['Boolean']['output'];
2829
3800
  deleteVehicle: Scalars['Boolean']['output'];
2830
3801
  deleteWarehouse: Scalars['Boolean']['output'];
2831
3802
  exportMtwEntities: MtwExportJob;
2832
3803
  holdMtwContainer: MtwContainerHold;
3804
+ importMtwCargoItems: MtwImportResult;
3805
+ importMtwCustomers: MtwImportResult;
3806
+ importMtwDrivers: MtwImportResult;
3807
+ importMtwVehicles: MtwImportResult;
3808
+ importMtwWarehouses: MtwImportResult;
2833
3809
  openMtwContainerCycle: MtwContainerCycle;
2834
3810
  openMtwFreeTimeClock: MtwFreeTimeClock;
2835
3811
  optimizeRoute: MtwRoute;
@@ -2852,10 +3828,12 @@ export type Mutation = {
2852
3828
  recordMtwTripUtilizationReport: MtwTripUtilizationReport;
2853
3829
  recordVehicleService: MtwVehicle;
2854
3830
  registerMtwContainer: MtwContainer;
3831
+ rejectMtwPickTask: MtwPickReview;
2855
3832
  releaseMtwContainerHold: MtwContainerReleaseDecision;
2856
3833
  removeShipmentLeg: Scalars['Boolean']['output'];
2857
3834
  requestMtwFreeTimeExtension: MtwFreeTimeExtension;
2858
3835
  revokeMtwInspectorQualification: MtwInspectorQualification;
3836
+ revokeMtwPickTaskReview: MtwPickReview;
2859
3837
  revokeMtwProcedureDeviation: MtwProcedureDeviation;
2860
3838
  saveMtwConsolidationManifest: MtwConsolidationManifest;
2861
3839
  saveMtwConsolidationPlan: MtwConsolidationPlan;
@@ -2874,6 +3852,8 @@ export type Mutation = {
2874
3852
  updateIntegration: MtwIntegration;
2875
3853
  updateInventoryItem: MtwInventoryItem;
2876
3854
  updateRoute: MtwRoute;
3855
+ updateServiceOffering: MtwServiceOffering;
3856
+ updateServiceProvider: MtwServiceProvider;
2877
3857
  updateShipment: MtwShipment;
2878
3858
  updateVehicle: MtwVehicle;
2879
3859
  updateVehicleLocation: MtwVehicle;
@@ -2885,6 +3865,10 @@ export type Mutation = {
2885
3865
  export type MutationAcceptMtwReuseReservationArgs = {
2886
3866
  input: AcceptMtwReuseReservationInput;
2887
3867
  };
3868
+ export type MutationAcknowledgeMtwTrackingAlertArgs = {
3869
+ alertType: MtwTrackingAlertType;
3870
+ shipmentId: Scalars['ID']['input'];
3871
+ };
2888
3872
  export type MutationAddShipmentLegArgs = {
2889
3873
  input: CreateShipmentLegInput;
2890
3874
  shipmentId: Scalars['ID']['input'];
@@ -2895,16 +3879,30 @@ export type MutationAddTrackingEventArgs = {
2895
3879
  export type MutationAdjustInventoryStockArgs = {
2896
3880
  input: AdjustInventoryStockInput;
2897
3881
  };
3882
+ export type MutationApproveMtwPickTaskArgs = {
3883
+ input: RecordMtwPickReviewInput;
3884
+ };
2898
3885
  export type MutationAssignDriverVehicleArgs = {
2899
3886
  id: Scalars['ID']['input'];
2900
3887
  vehicleId?: InputMaybe<Scalars['ID']['input']>;
2901
3888
  };
3889
+ export type MutationAssignShipmentServiceProviderArgs = {
3890
+ providerId?: InputMaybe<Scalars['ID']['input']>;
3891
+ shipmentId: Scalars['ID']['input'];
3892
+ };
2902
3893
  export type MutationCaptureEpodArgs = {
2903
3894
  input: CaptureEpodInput;
2904
3895
  };
2905
3896
  export type MutationCloseMtwContainerCycleArgs = {
2906
3897
  input: CloseMtwContainerCycleInput;
2907
3898
  };
3899
+ export type MutationCompareMtwFreightInvoiceArgs = {
3900
+ input: CompareMtwFreightInvoiceInput;
3901
+ };
3902
+ export type MutationConfigureShipmentStatusSourceArgs = {
3903
+ id: Scalars['ID']['input'];
3904
+ input: ConfigureShipmentStatusSourceInput;
3905
+ };
2908
3906
  export type MutationCreateCargoItemArgs = {
2909
3907
  input: CreateCargoItemInput;
2910
3908
  };
@@ -2932,6 +3930,12 @@ export type MutationCreateMtwPickTaskIntentArgs = {
2932
3930
  export type MutationCreateRouteArgs = {
2933
3931
  input: CreateRouteInput;
2934
3932
  };
3933
+ export type MutationCreateServiceOfferingArgs = {
3934
+ input: MtwCreateServiceOfferingInput;
3935
+ };
3936
+ export type MutationCreateServiceProviderArgs = {
3937
+ input: MtwCreateServiceProviderInput;
3938
+ };
2935
3939
  export type MutationCreateShipmentArgs = {
2936
3940
  input: CreateShipmentInput;
2937
3941
  };
@@ -2965,6 +3969,12 @@ export type MutationDeleteInventoryItemArgs = {
2965
3969
  export type MutationDeleteRouteArgs = {
2966
3970
  id: Scalars['ID']['input'];
2967
3971
  };
3972
+ export type MutationDeleteServiceOfferingArgs = {
3973
+ id: Scalars['ID']['input'];
3974
+ };
3975
+ export type MutationDeleteServiceProviderArgs = {
3976
+ id: Scalars['ID']['input'];
3977
+ };
2968
3978
  export type MutationDeleteShipmentArgs = {
2969
3979
  id: Scalars['ID']['input'];
2970
3980
  };
@@ -2980,6 +3990,21 @@ export type MutationExportMtwEntitiesArgs = {
2980
3990
  export type MutationHoldMtwContainerArgs = {
2981
3991
  input: HoldMtwContainerInput;
2982
3992
  };
3993
+ export type MutationImportMtwCargoItemsArgs = {
3994
+ input: MtwImportInput;
3995
+ };
3996
+ export type MutationImportMtwCustomersArgs = {
3997
+ input: MtwImportInput;
3998
+ };
3999
+ export type MutationImportMtwDriversArgs = {
4000
+ input: MtwImportInput;
4001
+ };
4002
+ export type MutationImportMtwVehiclesArgs = {
4003
+ input: MtwImportInput;
4004
+ };
4005
+ export type MutationImportMtwWarehousesArgs = {
4006
+ input: MtwImportInput;
4007
+ };
2983
4008
  export type MutationOpenMtwContainerCycleArgs = {
2984
4009
  input: OpenMtwContainerCycleInput;
2985
4010
  };
@@ -3047,6 +4072,9 @@ export type MutationRecordVehicleServiceArgs = {
3047
4072
  export type MutationRegisterMtwContainerArgs = {
3048
4073
  input: RegisterMtwContainerInput;
3049
4074
  };
4075
+ export type MutationRejectMtwPickTaskArgs = {
4076
+ input: RecordMtwPickReviewInput;
4077
+ };
3050
4078
  export type MutationReleaseMtwContainerHoldArgs = {
3051
4079
  input: ReleaseMtwContainerHoldInput;
3052
4080
  };
@@ -3059,6 +4087,9 @@ export type MutationRequestMtwFreeTimeExtensionArgs = {
3059
4087
  export type MutationRevokeMtwInspectorQualificationArgs = {
3060
4088
  input: RevokeMtwInspectorQualificationInput;
3061
4089
  };
4090
+ export type MutationRevokeMtwPickTaskReviewArgs = {
4091
+ input: RecordMtwPickReviewInput;
4092
+ };
3062
4093
  export type MutationRevokeMtwProcedureDeviationArgs = {
3063
4094
  input: RevokeMtwProcedureDeviationInput;
3064
4095
  };
@@ -3123,6 +4154,14 @@ export type MutationUpdateRouteArgs = {
3123
4154
  id: Scalars['ID']['input'];
3124
4155
  input: UpdateRouteInput;
3125
4156
  };
4157
+ export type MutationUpdateServiceOfferingArgs = {
4158
+ id: Scalars['ID']['input'];
4159
+ input: MtwUpdateServiceOfferingInput;
4160
+ };
4161
+ export type MutationUpdateServiceProviderArgs = {
4162
+ id: Scalars['ID']['input'];
4163
+ input: MtwUpdateServiceProviderInput;
4164
+ };
3126
4165
  export type MutationUpdateShipmentArgs = {
3127
4166
  id: Scalars['ID']['input'];
3128
4167
  input: UpdateShipmentInput;
@@ -3203,6 +4242,12 @@ export type PlanMultiModalShipmentInput = {
3203
4242
  shipmentNumber: Scalars['String']['input'];
3204
4243
  storeOrderId?: InputMaybe<Scalars['ID']['input']>;
3205
4244
  };
4245
+ export type PreviewMtwFreightInvoiceInput = {
4246
+ estimateVersionId: Scalars['ID']['input'];
4247
+ evidence?: InputMaybe<Array<MtwContainerEvidenceInput>>;
4248
+ facts: MtwFreightInvoiceFactsInput;
4249
+ shipmentId: Scalars['ID']['input'];
4250
+ };
3206
4251
  export type PublishMtwProcedureVersionInput = {
3207
4252
  effectiveAt: Scalars['DateTime']['input'];
3208
4253
  evidence: Array<MtwContainerEvidenceInput>;
@@ -3264,6 +4309,7 @@ export type Query = {
3264
4309
  inventoryStats: MtwInventoryStats;
3265
4310
  inventoryTransactions: Array<MtwInventoryTransaction>;
3266
4311
  inventoryTransactionsCount: Scalars['Int']['output'];
4312
+ marketplaceStats: MtwMarketplaceStats;
3267
4313
  mtwApplicableProcedures: MtwProcedureApplicability;
3268
4314
  mtwConsolidationManifest: MtwConsolidationManifest;
3269
4315
  mtwConsolidationManifestPage: MtwConsolidationManifestPage;
@@ -3271,6 +4317,7 @@ export type Query = {
3271
4317
  mtwConsolidationObservationPage: MtwConsolidationObservationPage;
3272
4318
  mtwConsolidationPlan: MtwConsolidationPlan;
3273
4319
  mtwConsolidationPlanPage: MtwConsolidationPlanPage;
4320
+ mtwConsumedFuelPreview: MtwConsumedFuelPreview;
3274
4321
  mtwContainer?: Maybe<MtwContainer>;
3275
4322
  mtwContainerCyclePage: MtwContainerCyclePage;
3276
4323
  mtwContainerCycles: Array<MtwContainerCycle>;
@@ -3294,7 +4341,21 @@ export type Query = {
3294
4341
  mtwFreeTimeExtensionPage: MtwFreeTimeExtensionPage;
3295
4342
  mtwFreightEstimatePage: MtwFreightEstimatePage;
3296
4343
  mtwFreightEstimateVersion: MtwFreightEstimateVersion;
4344
+ mtwFreightInvoiceComparison: MtwFreightInvoiceComparison;
4345
+ /** Null is not proof of no effect and never authorizes resubmission. Exact original actor/context only. */
4346
+ mtwFreightInvoiceComparisonByRequestKey?: Maybe<MtwFreightInvoiceComparison>;
4347
+ mtwFreightInvoiceComparisonPage: MtwFreightInvoiceComparisonPage;
4348
+ /**
4349
+ * Columns accepted by each import, for building templates and showing guidance.
4350
+ * This is static reference metadata with no workspace data in it, so it only
4351
+ * needs an authenticated caller; every import mutation enforces its own
4352
+ * entity create permission.
4353
+ */
4354
+ mtwImportSpec: Array<MtwImportEntitySpec>;
4355
+ mtwPalletGeometryPreview: MtwPalletGeometryPreview;
3297
4356
  mtwPickPreparation: MtwPickPreparation;
4357
+ mtwPickReview: MtwPickReview;
4358
+ mtwPickReviewPage: MtwPickReviewPage;
3298
4359
  mtwPickTask: MtwPickTask;
3299
4360
  mtwPickTaskPage: MtwPickTaskPage;
3300
4361
  mtwProcedureDeviationPage: MtwProcedureDeviationPage;
@@ -3307,11 +4368,13 @@ export type Query = {
3307
4368
  mtwReuseProposalPage: MtwReuseProposalPage;
3308
4369
  mtwReuseReservationPage: MtwReuseReservationPage;
3309
4370
  mtwReuseReservationTransitionPage: MtwReuseReservationTransitionPage;
4371
+ mtwShipmentRiskForecast: MtwRiskForecast;
3310
4372
  mtwStockBindingAssessment: MtwStockBindingAssessment;
3311
4373
  mtwStockBindingAssessmentPage: MtwStockBindingAssessmentPage;
3312
4374
  mtwStockObservation: MtwStockObservation;
3313
4375
  mtwStockObservationPage: MtwStockObservationPage;
3314
4376
  mtwTripUtilizationReportPage: MtwTripUtilizationReportPage;
4377
+ myEpodShipmentStatus?: Maybe<MtwOwnedEpodShipmentStatus>;
3315
4378
  /**
3316
4379
  * Type C self-list: delivery jobs assigned to the CALLING driver that are out
3317
4380
  * for delivery/in transit and still awaiting ePOD capture. Feeds the
@@ -3320,13 +4383,20 @@ export type Query = {
3320
4383
  myPendingEpodDeliveryJobs: Array<MtwDeliveryJob>;
3321
4384
  myPendingEpodDeliveryJobsCount: Scalars['Int']['output'];
3322
4385
  previewMtwConsolidationManifest: MtwConsolidationSnapshot;
4386
+ previewMtwFreightInvoice: MtwFreightInvoicePreview;
3323
4387
  previewMtwFreightTotal: MtwFreightPreview;
3324
4388
  route?: Maybe<MtwRoute>;
3325
4389
  routeStats: MtwRouteStats;
3326
4390
  routes: Array<MtwRoute>;
3327
4391
  routesCount: Scalars['Int']['output'];
4392
+ serviceOffering?: Maybe<MtwServiceOffering>;
4393
+ serviceOfferings: Array<MtwServiceOffering>;
4394
+ serviceProvider?: Maybe<MtwServiceProvider>;
4395
+ serviceProviders: Array<MtwServiceProvider>;
4396
+ serviceProvidersCount: Scalars['Int']['output'];
3328
4397
  shipment?: Maybe<MtwShipment>;
3329
4398
  shipmentLegs: Array<MtwShipmentLeg>;
4399
+ shipmentStatusDecisions: Array<MtwShipmentStatusDecision>;
3330
4400
  shipmentTracking: Array<MtwTrackingEvent>;
3331
4401
  shipments: Array<MtwShipment>;
3332
4402
  shipmentsCount: Scalars['Int']['output'];
@@ -3473,6 +4543,9 @@ export type QueryMtwConsolidationPlanPageArgs = {
3473
4543
  planReference?: InputMaybe<Scalars['String']['input']>;
3474
4544
  shipmentId: Scalars['ID']['input'];
3475
4545
  };
4546
+ export type QueryMtwConsumedFuelPreviewArgs = {
4547
+ input: MtwConsumedFuelPreviewInput;
4548
+ };
3476
4549
  export type QueryMtwContainerArgs = {
3477
4550
  id: Scalars['ID']['input'];
3478
4551
  };
@@ -3559,10 +4632,35 @@ export type QueryMtwFreightEstimateVersionArgs = {
3559
4632
  id: Scalars['ID']['input'];
3560
4633
  shipmentId: Scalars['ID']['input'];
3561
4634
  };
4635
+ export type QueryMtwFreightInvoiceComparisonArgs = {
4636
+ id: Scalars['ID']['input'];
4637
+ shipmentId: Scalars['ID']['input'];
4638
+ };
4639
+ export type QueryMtwFreightInvoiceComparisonByRequestKeyArgs = {
4640
+ requestKey: Scalars['String']['input'];
4641
+ shipmentId: Scalars['ID']['input'];
4642
+ };
4643
+ export type QueryMtwFreightInvoiceComparisonPageArgs = {
4644
+ invoiceIdentityId: Scalars['ID']['input'];
4645
+ pagination?: InputMaybe<MtwContainerPagination>;
4646
+ shipmentId: Scalars['ID']['input'];
4647
+ };
4648
+ export type QueryMtwPalletGeometryPreviewArgs = {
4649
+ input: MtwPalletGeometryPreviewInput;
4650
+ };
3562
4651
  export type QueryMtwPickPreparationArgs = {
3563
4652
  destinationInventoryItemId: Scalars['ID']['input'];
3564
4653
  sourceInventoryItemId: Scalars['ID']['input'];
3565
4654
  };
4655
+ export type QueryMtwPickReviewArgs = {
4656
+ id: Scalars['ID']['input'];
4657
+ taskId: Scalars['ID']['input'];
4658
+ };
4659
+ export type QueryMtwPickReviewPageArgs = {
4660
+ limit?: Scalars['Int']['input'];
4661
+ offset?: Scalars['Int']['input'];
4662
+ taskId: Scalars['ID']['input'];
4663
+ };
3566
4664
  export type QueryMtwPickTaskArgs = {
3567
4665
  id: Scalars['ID']['input'];
3568
4666
  };
@@ -3609,6 +4707,9 @@ export type QueryMtwReuseReservationTransitionPageArgs = {
3609
4707
  pagination?: InputMaybe<MtwContainerPagination>;
3610
4708
  reservationId: Scalars['ID']['input'];
3611
4709
  };
4710
+ export type QueryMtwShipmentRiskForecastArgs = {
4711
+ shipmentId: Scalars['ID']['input'];
4712
+ };
3612
4713
  export type QueryMtwStockBindingAssessmentArgs = {
3613
4714
  id: Scalars['ID']['input'];
3614
4715
  inventoryItemId: Scalars['ID']['input'];
@@ -3629,6 +4730,9 @@ export type QueryMtwTripUtilizationReportPageArgs = {
3629
4730
  pagination?: InputMaybe<MtwContainerPagination>;
3630
4731
  routeId: Scalars['ID']['input'];
3631
4732
  };
4733
+ export type QueryMyEpodShipmentStatusArgs = {
4734
+ deliveryJobId: Scalars['ID']['input'];
4735
+ };
3632
4736
  export type QueryMyPendingEpodDeliveryJobsArgs = {
3633
4737
  pagination?: InputMaybe<PaginationInput>;
3634
4738
  };
@@ -3636,6 +4740,9 @@ export type QueryPreviewMtwConsolidationManifestArgs = {
3636
4740
  expectedObservationSequence: Scalars['Int']['input'];
3637
4741
  planId: Scalars['ID']['input'];
3638
4742
  };
4743
+ export type QueryPreviewMtwFreightInvoiceArgs = {
4744
+ input: PreviewMtwFreightInvoiceInput;
4745
+ };
3639
4746
  export type QueryPreviewMtwFreightTotalArgs = {
3640
4747
  input: MtwFreightFactsInput;
3641
4748
  };
@@ -3649,12 +4756,33 @@ export type QueryRoutesArgs = {
3649
4756
  export type QueryRoutesCountArgs = {
3650
4757
  filter?: InputMaybe<RouteFilterInput>;
3651
4758
  };
4759
+ export type QueryServiceOfferingArgs = {
4760
+ id: Scalars['ID']['input'];
4761
+ };
4762
+ export type QueryServiceOfferingsArgs = {
4763
+ filter?: InputMaybe<MtwServiceOfferingFilterInput>;
4764
+ pagination?: InputMaybe<PaginationInput>;
4765
+ };
4766
+ export type QueryServiceProviderArgs = {
4767
+ id: Scalars['ID']['input'];
4768
+ };
4769
+ export type QueryServiceProvidersArgs = {
4770
+ filter?: InputMaybe<MtwServiceProviderFilterInput>;
4771
+ pagination?: InputMaybe<PaginationInput>;
4772
+ };
4773
+ export type QueryServiceProvidersCountArgs = {
4774
+ filter?: InputMaybe<MtwServiceProviderFilterInput>;
4775
+ };
3652
4776
  export type QueryShipmentArgs = {
3653
4777
  id: Scalars['ID']['input'];
3654
4778
  };
3655
4779
  export type QueryShipmentLegsArgs = {
3656
4780
  shipmentId: Scalars['ID']['input'];
3657
4781
  };
4782
+ export type QueryShipmentStatusDecisionsArgs = {
4783
+ pagination?: InputMaybe<PaginationInput>;
4784
+ shipmentId: Scalars['ID']['input'];
4785
+ };
3658
4786
  export type QueryShipmentTrackingArgs = {
3659
4787
  pagination?: InputMaybe<PaginationInput>;
3660
4788
  shipmentId: Scalars['ID']['input'];
@@ -3797,6 +4925,22 @@ export type RecordMtwFreeTimeExtensionDecisionInput = {
3797
4925
  note: Scalars['String']['input'];
3798
4926
  sourceReference: Scalars['String']['input'];
3799
4927
  };
4928
+ export type RecordMtwPickReviewInput = {
4929
+ actions: Array<MtwPickReviewAction>;
4930
+ evidence: Array<MtwContainerEvidenceInput>;
4931
+ expectedPreviousDecisionId?: InputMaybe<Scalars['ID']['input']>;
4932
+ expectedVersion: Scalars['Int']['input'];
4933
+ handlingPolicy?: InputMaybe<MtwMoveReviewSourceInput>;
4934
+ idempotencyKey: Scalars['String']['input'];
4935
+ intentHash: Scalars['String']['input'];
4936
+ note: Scalars['String']['input'];
4937
+ quantityCeiling?: InputMaybe<Scalars['Int']['input']>;
4938
+ sop?: InputMaybe<MtwMoveReviewSourceInput>;
4939
+ subjectActorId: Scalars['ID']['input'];
4940
+ taskId: Scalars['ID']['input'];
4941
+ validFrom?: InputMaybe<Scalars['DateTime']['input']>;
4942
+ validUntil?: InputMaybe<Scalars['DateTime']['input']>;
4943
+ };
3800
4944
  export type RecordMtwProcedureDeviationInput = {
3801
4945
  evidence: Array<MtwContainerEvidenceInput>;
3802
4946
  executionId: Scalars['ID']['input'];
@@ -3966,6 +5110,7 @@ export type SaveMtwConsolidationPlanInput = {
3966
5110
  shipmentId: Scalars['ID']['input'];
3967
5111
  };
3968
5112
  export type SaveMtwFreightEstimateInput = {
5113
+ commercialCapture?: InputMaybe<MtwFreightCommercialCaptureInput>;
3969
5114
  estimateReference: Scalars['String']['input'];
3970
5115
  evidence: Array<MtwContainerEvidenceInput>;
3971
5116
  expectedPreviousVersionId?: InputMaybe<Scalars['ID']['input']>;
@@ -3989,6 +5134,10 @@ export type ShipmentFilterInput = {
3989
5134
  };
3990
5135
  export type ShipmentLegStatus = 'ARRIVED' | 'BOOKED' | 'CANCELLED' | 'DELIVERED' | 'IN_TRANSIT' | 'PLANNED';
3991
5136
  export type ShipmentStatus = 'DELIVERED' | 'FAILED' | 'IN_TRANSIT' | 'PICKED_UP' | 'PLANNED' | 'RETURNED';
5137
+ export type ShipmentStatusAuthority = 'INTEGRATION_EVENT_TIME' | 'LEGACY_HOLD' | 'MANUAL_HOLD';
5138
+ export type ShipmentStatusDecisionOrigin = 'DIRECT_TRACKING' | 'EPOD' | 'INITIAL_CREATION' | 'INTEGRATION' | 'MANUAL' | 'SOURCE_CONFIGURATION';
5139
+ export type ShipmentStatusDecisionOutcome = 'APPLIED' | 'HELD';
5140
+ export type ShipmentStatusHeldReason = 'EQUAL_SOURCE_TIME' | 'LEGACY_AUTHORITY' | 'MANUAL_AUTHORITY' | 'NON_DESIGNATED_SOURCE' | 'OLDER_SOURCE_TIME' | 'SOURCE_TIME_IN_FUTURE' | 'SOURCE_TIME_TOO_OLD' | 'UNKNOWN_SOURCE_TIME' | 'UNMAPPED_EVENT_TYPE' | 'UNRECEIPTED_EVIDENCE';
3992
5141
  export type ShippingQuoteInput = {
3993
5142
  /** Cash on delivery. */
3994
5143
  cod?: InputMaybe<Scalars['Boolean']['input']>;
@@ -4040,6 +5189,7 @@ export type TerminateMtwReuseReservationInput = {
4040
5189
  status: MtwReuseReservationTerminalStatus;
4041
5190
  };
4042
5191
  export type TrackingEventType = 'ARRIVED' | 'CREATED' | 'DELIVERED' | 'DEPARTED' | 'FAILED' | 'IN_TRANSIT' | 'OUT_FOR_DELIVERY' | 'PICKED_UP' | 'RETURNED';
5192
+ export type TrackingSourceTimeProvenance = 'LEGACY_UNKNOWN' | 'PROVIDER_TIME_UNVERIFIED' | 'PROVIDER_TIME_VALIDATED' | 'RECEIPT_TIME_FALLBACK';
4043
5193
  export type TransferInventoryStockInput = {
4044
5194
  destinationInventoryItemId: Scalars['ID']['input'];
4045
5195
  quantity: Scalars['Int']['input'];
@@ -4162,8 +5312,10 @@ export type UpdateShipmentInput = {
4162
5312
  deliveryJobId?: InputMaybe<Scalars['ID']['input']>;
4163
5313
  destination?: InputMaybe<Scalars['JSON']['input']>;
4164
5314
  estimatedDelivery?: InputMaybe<Scalars['DateTime']['input']>;
5315
+ expectedStatusRevision?: InputMaybe<Scalars['Int']['input']>;
4165
5316
  origin?: InputMaybe<Scalars['JSON']['input']>;
4166
5317
  status?: InputMaybe<ShipmentStatus>;
5318
+ statusReason?: InputMaybe<Scalars['String']['input']>;
4167
5319
  storeOrderId?: InputMaybe<Scalars['ID']['input']>;
4168
5320
  trackingNumber?: InputMaybe<Scalars['String']['input']>;
4169
5321
  };