@burdenoff/microfe-movethewheels 2026.1030.1 → 2026.1031.2

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 (44) hide show
  1. package/dist/components/ExportStatusBanner.js +53 -0
  2. package/dist/components/ShipmentRiskDialog.js +228 -0
  3. package/dist/components/TrackingAlertList.js +149 -0
  4. package/dist/generated/tracking-quality-operations.d.ts +1070 -2
  5. package/dist/generated/wspace-types.d.ts +2895 -50
  6. package/dist/hooks/useEntityExport.js +85 -0
  7. package/dist/hooks/useShipmentRisk.js +72 -0
  8. package/dist/hooks/useTracking.js +96 -82
  9. package/dist/movethewheels/components/ExportStatusBanner.d.ts +7 -0
  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/useEntityExport.d.ts +32 -0
  13. package/dist/movethewheels/hooks/useShipmentRisk.d.ts +41 -0
  14. package/dist/movethewheels/types/index.d.ts +15 -1
  15. package/dist/movethewheels/utils/entityExport.d.ts +64 -0
  16. package/dist/movethewheels/utils/trackingAlerts.d.ts +36 -0
  17. package/dist/pages/CustomersPage.js +64 -58
  18. package/dist/pages/DashboardPage.js +147 -151
  19. package/dist/pages/DriversPage.js +113 -107
  20. package/dist/pages/LiveTrackingPage.js +169 -169
  21. package/dist/pages/OrdersListPage.js +85 -79
  22. package/dist/pages/ProductsPage.js +63 -57
  23. package/dist/pages/VehiclesPage.js +91 -85
  24. package/dist/utils/entityExport.js +54 -0
  25. package/dist/utils/trackingAlerts.js +86 -0
  26. package/package.json +4 -2
  27. package/src/generated/tracking-quality-operations.ts +1409 -13
  28. package/src/generated/wspace-types.ts +3248 -51
  29. package/src/movethewheels/components/ExportStatusBanner.tsx +78 -0
  30. package/src/movethewheels/components/ShipmentRiskDialog.tsx +315 -0
  31. package/src/movethewheels/components/TrackingAlertList.tsx +188 -0
  32. package/src/movethewheels/hooks/useEntityExport.ts +130 -0
  33. package/src/movethewheels/hooks/useShipmentRisk.ts +195 -0
  34. package/src/movethewheels/hooks/useTracking.ts +66 -22
  35. package/src/movethewheels/pages/CustomersPage.tsx +11 -2
  36. package/src/movethewheels/pages/DashboardPage.tsx +10 -20
  37. package/src/movethewheels/pages/DriversPage.tsx +11 -2
  38. package/src/movethewheels/pages/LiveTrackingPage.tsx +20 -22
  39. package/src/movethewheels/pages/OrdersListPage.tsx +13 -2
  40. package/src/movethewheels/pages/ProductsPage.tsx +11 -2
  41. package/src/movethewheels/pages/VehiclesPage.tsx +11 -2
  42. package/src/movethewheels/types/index.ts +16 -1
  43. package/src/movethewheels/utils/entityExport.ts +140 -0
  44. 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,46 @@ 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
+ };
1562
2037
  /** A recorded manual issuer review; workspace privileges do not establish professional qualifications. */
1563
2038
  export type MtwInspectorQualification = {
1564
2039
  __typename?: 'MtwInspectorQualification';
@@ -1705,6 +2180,24 @@ export type MtwInventoryTransferResult = {
1705
2180
  destination: MtwInventoryItem;
1706
2181
  source: MtwInventoryItem;
1707
2182
  };
2183
+ export type MtwMarketplaceStats = {
2184
+ __typename?: 'MtwMarketplaceStats';
2185
+ activeProviders: Scalars['Int']['output'];
2186
+ /** Average provider rating, or null when no provider has been rated. */
2187
+ avgRating?: Maybe<Scalars['Float']['output']>;
2188
+ offerings: Scalars['Int']['output'];
2189
+ providers: Scalars['Int']['output'];
2190
+ verifiedProviders: Scalars['Int']['output'];
2191
+ };
2192
+ export type MtwMoveReviewSource = {
2193
+ __typename?: 'MtwMoveReviewSource';
2194
+ reference: Scalars['String']['output'];
2195
+ revision: Scalars['String']['output'];
2196
+ };
2197
+ export type MtwMoveReviewSourceInput = {
2198
+ reference: Scalars['String']['input'];
2199
+ revision: Scalars['String']['input'];
2200
+ };
1708
2201
  /** An estimate from the caller's own inputs — not a quote from anyone. */
1709
2202
  export type MtwOwnFleetEstimate = {
1710
2203
  __typename?: 'MtwOwnFleetEstimate';
@@ -1718,6 +2211,145 @@ export type MtwOwnFleetEstimate = {
1718
2211
  /** Cheapest courier price minus this estimate. Positive means running your own vehicle is cheaper. Null when no courier quoted. */
1719
2212
  savingsVsCheapestCourier?: Maybe<Scalars['Float']['output']>;
1720
2213
  };
2214
+ export type MtwOwnedEpodShipmentStatus = {
2215
+ __typename?: 'MtwOwnedEpodShipmentStatus';
2216
+ id: Scalars['ID']['output'];
2217
+ status: ShipmentStatus;
2218
+ statusRevision: Scalars['Int']['output'];
2219
+ };
2220
+ export type MtwPalletAdditionalPackingInput = {
2221
+ massG?: InputMaybe<Scalars['String']['input']>;
2222
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2223
+ };
2224
+ export type MtwPalletBaseInput = {
2225
+ heightMm?: InputMaybe<Scalars['Int']['input']>;
2226
+ lengthMm?: InputMaybe<Scalars['Int']['input']>;
2227
+ maxPayloadMassG?: InputMaybe<Scalars['String']['input']>;
2228
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2229
+ tareMassG?: InputMaybe<Scalars['String']['input']>;
2230
+ widthMm?: InputMaybe<Scalars['Int']['input']>;
2231
+ };
2232
+ export type MtwPalletBound = {
2233
+ __typename?: 'MtwPalletBound';
2234
+ reason: Scalars['String']['output'];
2235
+ status: MtwPalletBoundStatus;
2236
+ };
2237
+ export type MtwPalletBoundStatus = 'FAIL' | 'PASS' | 'UNKNOWN';
2238
+ export type MtwPalletBounds = {
2239
+ __typename?: 'MtwPalletBounds';
2240
+ loadedPalletGrossMass: MtwPalletBound;
2241
+ palletFootprintWithinLoadEnvelope: MtwPalletBound;
2242
+ palletPayloadMass: MtwPalletBound;
2243
+ permittedUprightYaw: MtwPalletBound;
2244
+ placedContainment: MtwPalletBound;
2245
+ placedNonOverlap: MtwPalletBound;
2246
+ reportedSingleLayerHeight: MtwPalletBound;
2247
+ };
2248
+ export type MtwPalletClassification = 'GEOMETRIC_PROPOSAL_ONLY';
2249
+ export type MtwPalletClearanceInput = {
2250
+ betweenPackagesMm?: InputMaybe<Scalars['Int']['input']>;
2251
+ perimeterMm?: InputMaybe<Scalars['Int']['input']>;
2252
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2253
+ topMm?: InputMaybe<Scalars['Int']['input']>;
2254
+ };
2255
+ /** Read-only supplied-measurement geometry; no persistence, stock change or release authority. */
2256
+ export type MtwPalletGeometryPreview = {
2257
+ __typename?: 'MtwPalletGeometryPreview';
2258
+ bounds: MtwPalletBounds;
2259
+ classification: MtwPalletClassification;
2260
+ layoutStatus: MtwPalletLayoutStatus;
2261
+ method: MtwPalletMethod;
2262
+ placedQuantity: Scalars['Int']['output'];
2263
+ placements: Array<MtwPalletPlacement>;
2264
+ requestedGrossMassG?: Maybe<Scalars['String']['output']>;
2265
+ requestedPayloadMassG?: Maybe<Scalars['String']['output']>;
2266
+ requestedQuantity: Scalars['Int']['output'];
2267
+ sources: MtwPalletSources;
2268
+ units: MtwPalletUnits;
2269
+ unplaced: Array<MtwPalletUnplaced>;
2270
+ unsupported: MtwPalletUnsupported;
2271
+ };
2272
+ export type MtwPalletGeometryPreviewInput = {
2273
+ additionalPacking: MtwPalletAdditionalPackingInput;
2274
+ clearance: MtwPalletClearanceInput;
2275
+ loadEnvelope?: InputMaybe<MtwPalletLoadEnvelopeInput>;
2276
+ mode: MtwPalletMode;
2277
+ packages: Array<MtwPalletPackageInput>;
2278
+ pallet: MtwPalletBaseInput;
2279
+ units: MtwPalletUnits;
2280
+ };
2281
+ export type MtwPalletLayoutStatus = 'NO_LAYOUT_FOUND_BY_METHOD' | 'PLACED_BY_METHOD' | 'UNKNOWN';
2282
+ export type MtwPalletLoadEnvelopeInput = {
2283
+ lengthMm?: InputMaybe<Scalars['Int']['input']>;
2284
+ maxGrossMassG?: InputMaybe<Scalars['String']['input']>;
2285
+ maxHeightMm?: InputMaybe<Scalars['Int']['input']>;
2286
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2287
+ widthMm?: InputMaybe<Scalars['Int']['input']>;
2288
+ };
2289
+ export type MtwPalletMeasurementSource = {
2290
+ __typename?: 'MtwPalletMeasurementSource';
2291
+ reference: Scalars['String']['output'];
2292
+ version: Scalars['String']['output'];
2293
+ };
2294
+ export type MtwPalletMeasurementSourceInput = {
2295
+ reference: Scalars['String']['input'];
2296
+ version: Scalars['String']['input'];
2297
+ };
2298
+ export type MtwPalletMethod = 'DETERMINISTIC_SINGLE_LAYER_SHELF_V1';
2299
+ export type MtwPalletMode = 'UPRIGHT_SINGLE_LAYER';
2300
+ export type MtwPalletPackageInput = {
2301
+ allowedYawDegrees?: InputMaybe<Array<Scalars['Int']['input']>>;
2302
+ grossMassG?: InputMaybe<Scalars['String']['input']>;
2303
+ heightMm?: InputMaybe<Scalars['Int']['input']>;
2304
+ id: Scalars['ID']['input'];
2305
+ lengthMm?: InputMaybe<Scalars['Int']['input']>;
2306
+ quantity: Scalars['Int']['input'];
2307
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2308
+ upright?: InputMaybe<Scalars['Boolean']['input']>;
2309
+ widthMm?: InputMaybe<Scalars['Int']['input']>;
2310
+ };
2311
+ export type MtwPalletPackageSource = {
2312
+ __typename?: 'MtwPalletPackageSource';
2313
+ packageId: Scalars['ID']['output'];
2314
+ source?: Maybe<MtwPalletMeasurementSource>;
2315
+ };
2316
+ export type MtwPalletPlacement = {
2317
+ __typename?: 'MtwPalletPlacement';
2318
+ heightMm?: Maybe<Scalars['Int']['output']>;
2319
+ lengthMm: Scalars['Int']['output'];
2320
+ packageId: Scalars['ID']['output'];
2321
+ unit: Scalars['Int']['output'];
2322
+ widthMm: Scalars['Int']['output'];
2323
+ xMm: Scalars['Int']['output'];
2324
+ yMm: Scalars['Int']['output'];
2325
+ yawDegrees: Scalars['Int']['output'];
2326
+ zMm?: Maybe<Scalars['Int']['output']>;
2327
+ };
2328
+ export type MtwPalletSources = {
2329
+ __typename?: 'MtwPalletSources';
2330
+ additionalPacking?: Maybe<MtwPalletMeasurementSource>;
2331
+ clearance?: Maybe<MtwPalletMeasurementSource>;
2332
+ loadEnvelope?: Maybe<MtwPalletMeasurementSource>;
2333
+ packages: Array<MtwPalletPackageSource>;
2334
+ pallet?: Maybe<MtwPalletMeasurementSource>;
2335
+ };
2336
+ export type MtwPalletUnits = 'MM_G';
2337
+ export type MtwPalletUnplaced = {
2338
+ __typename?: 'MtwPalletUnplaced';
2339
+ packageId: Scalars['ID']['output'];
2340
+ quantity: Scalars['Int']['output'];
2341
+ };
2342
+ export type MtwPalletUnsupported = {
2343
+ __typename?: 'MtwPalletUnsupported';
2344
+ additionalPackingGeometry: MtwPalletUnsupportedStatus;
2345
+ centreOfGravityAndStability: MtwPalletUnsupportedStatus;
2346
+ handling: MtwPalletUnsupportedStatus;
2347
+ loadingAndUnloadingPath: MtwPalletUnsupportedStatus;
2348
+ securing: MtwPalletUnsupportedStatus;
2349
+ segregationAndCargoCompatibility: MtwPalletUnsupportedStatus;
2350
+ supportAndFloorContactLoads: MtwPalletUnsupportedStatus;
2351
+ };
2352
+ export type MtwPalletUnsupportedStatus = 'UNKNOWN';
1721
2353
  export type MtwPickIntentLine = {
1722
2354
  __typename?: 'MtwPickIntentLine';
1723
2355
  applicableProfile?: Maybe<MtwPickIntentProfile>;
@@ -1777,6 +2409,44 @@ export type MtwPickPreparation = {
1777
2409
  evaluatedAt: Scalars['DateTime']['output'];
1778
2410
  source: MtwPickIntentLine;
1779
2411
  };
2412
+ /** Immutable human review only. It reserves no stock and confers no physical execution or qualification. */
2413
+ export type MtwPickReview = {
2414
+ __typename?: 'MtwPickReview';
2415
+ actions: Array<MtwPickReviewAction>;
2416
+ classification: Scalars['String']['output'];
2417
+ evidence: Array<MtwContainerEvidence>;
2418
+ handlingPolicy?: Maybe<MtwMoveReviewSource>;
2419
+ id: Scalars['ID']['output'];
2420
+ idempotencyKey: Scalars['String']['output'];
2421
+ intentHash: Scalars['String']['output'];
2422
+ kind: MtwPickReviewKind;
2423
+ note: Scalars['String']['output'];
2424
+ previousDecisionId?: Maybe<Scalars['ID']['output']>;
2425
+ quantityCeiling?: Maybe<Scalars['Int']['output']>;
2426
+ recordedAt: Scalars['DateTime']['output'];
2427
+ reviewerActorId: Scalars['ID']['output'];
2428
+ sop?: Maybe<MtwMoveReviewSource>;
2429
+ subjectActorId: Scalars['ID']['output'];
2430
+ taskId: Scalars['ID']['output'];
2431
+ validFrom?: Maybe<Scalars['DateTime']['output']>;
2432
+ validUntil?: Maybe<Scalars['DateTime']['output']>;
2433
+ version: Scalars['Int']['output'];
2434
+ };
2435
+ export type MtwPickReviewAction = 'RELEASE_STAGED_CUSTODY' | 'RELEASE_UNPICKED' | 'RESERVE' | 'SHORT_PICK' | 'STAGE';
2436
+ export type MtwPickReviewKind = 'APPROVE' | 'REJECT' | 'REVOKE';
2437
+ export type MtwPickReviewPage = {
2438
+ __typename?: 'MtwPickReviewPage';
2439
+ evaluatedAt: Scalars['DateTime']['output'];
2440
+ hasMore: Scalars['Boolean']['output'];
2441
+ items: Array<MtwPickReview>;
2442
+ latestDecision?: Maybe<MtwPickReview>;
2443
+ limit: Scalars['Int']['output'];
2444
+ nextOffset?: Maybe<Scalars['Int']['output']>;
2445
+ offset: Scalars['Int']['output'];
2446
+ reviewState: MtwPickReviewState;
2447
+ total: Scalars['Int']['output'];
2448
+ };
2449
+ export type MtwPickReviewState = 'APPROVED_REVIEW_ONLY' | 'NOT_CURRENT' | 'REJECTED' | 'REVOKED' | 'UNREVIEWED';
1780
2450
  /** Immutable reported planning intent. It reserves no stock and grants no execution authority. */
1781
2451
  export type MtwPickTask = {
1782
2452
  __typename?: 'MtwPickTask';
@@ -2190,6 +2860,48 @@ export type MtwRevenueMetrics = {
2190
2860
  deliveredRevenue: Scalars['Float']['output'];
2191
2861
  totalRevenue: Scalars['Float']['output'];
2192
2862
  };
2863
+ /**
2864
+ * Deterministic delivery-risk forecast for a shipment, computed from its legs,
2865
+ * routes, tracking events, assigned vehicle and the carrier's recent history.
2866
+ */
2867
+ export type MtwRiskForecast = {
2868
+ __typename?: 'MtwRiskForecast';
2869
+ /** True when the promise is still in the future but predicted to be missed. */
2870
+ atRisk: Scalars['Boolean']['output'];
2871
+ /** True when the promised delivery has already passed without delivery. */
2872
+ breached: Scalars['Boolean']['output'];
2873
+ evaluatedAt: Scalars['DateTime']['output'];
2874
+ /** Forecasting method, e.g. DETERMINISTIC_V1. */
2875
+ method: Scalars['String']['output'];
2876
+ predictedDeliveryEarliest?: Maybe<Scalars['DateTime']['output']>;
2877
+ predictedDeliveryLatest?: Maybe<Scalars['DateTime']['output']>;
2878
+ predictedSlipMinutes: Scalars['Int']['output'];
2879
+ promisedDelivery?: Maybe<Scalars['DateTime']['output']>;
2880
+ recommendedAction: MtwRiskRecommendedAction;
2881
+ /** Name of the mutation that carries out the recommended action, if any. */
2882
+ recommendedMutation?: Maybe<Scalars['String']['output']>;
2883
+ riskLevel: MtwRiskLevel;
2884
+ riskScore: Scalars['Int']['output'];
2885
+ shipmentId: Scalars['ID']['output'];
2886
+ shipmentNumber: Scalars['String']['output'];
2887
+ signals: Array<MtwRiskSignal>;
2888
+ status: ShipmentStatus;
2889
+ };
2890
+ export type MtwRiskLevel = 'HIGH' | 'LOW' | 'MEDIUM' | 'NONE';
2891
+ export type MtwRiskRecommendedAction = 'MONITOR' | 'NONE' | 'REASSIGN_VEHICLE' | 'REPROMISE_DELIVERY' | 'REQUEST_TRACKING_UPDATE';
2892
+ /**
2893
+ * One piece of evidence behind a risk forecast. `weight` is the number of risk
2894
+ * score points it contributed; `minutes` is the time behind plan (or without
2895
+ * tracking), `ratio` the carrier late-delivery rate.
2896
+ */
2897
+ export type MtwRiskSignal = {
2898
+ __typename?: 'MtwRiskSignal';
2899
+ code: MtwRiskSignalCode;
2900
+ minutes?: Maybe<Scalars['Int']['output']>;
2901
+ ratio?: Maybe<Scalars['Float']['output']>;
2902
+ weight: Scalars['Int']['output'];
2903
+ };
2904
+ export type MtwRiskSignalCode = 'CARRIER_LATE_HISTORY' | 'EXCESS_DWELL' | 'LEG_SLIP' | 'OPEN_LEG_OVERDUE' | 'ROUTE_DURATION_OVERRUN' | 'TRACKING_STALE' | 'VEHICLE_UNAVAILABLE';
2193
2905
  export type MtwRoute = {
2194
2906
  __typename?: 'MtwRoute';
2195
2907
  actualDistance?: Maybe<Scalars['Float']['output']>;
@@ -2226,6 +2938,99 @@ export type MtwRouteStats = {
2226
2938
  totalDistance: Scalars['Float']['output'];
2227
2939
  totalDuration: Scalars['Float']['output'];
2228
2940
  };
2941
+ /** Whether the provider currently has capacity for an offering. */
2942
+ export type MtwServiceAvailability = 'AVAILABLE' | 'LIMITED' | 'UNAVAILABLE';
2943
+ /** A discoverable service a provider offers, with indicative price and availability. */
2944
+ export type MtwServiceOffering = {
2945
+ __typename?: 'MtwServiceOffering';
2946
+ availability: MtwServiceAvailability;
2947
+ category: MtwServiceOfferingCategory;
2948
+ createdAt: Scalars['DateTime']['output'];
2949
+ createdBy: Scalars['String']['output'];
2950
+ /** ISO 4217 currency code. */
2951
+ currency: Scalars['String']['output'];
2952
+ deletedAt?: Maybe<Scalars['DateTime']['output']>;
2953
+ description?: Maybe<Scalars['String']['output']>;
2954
+ id: Scalars['ID']['output'];
2955
+ isActive: Scalars['Boolean']['output'];
2956
+ name: Scalars['String']['output'];
2957
+ onBehalfOf?: Maybe<Scalars['String']['output']>;
2958
+ /** Indicative price in `currency`, per `pricingUnit`. Null when priced on request. */
2959
+ price?: Maybe<Scalars['Float']['output']>;
2960
+ /** What the price is charged per, for example "per km", "per pallet" or "per shipment". */
2961
+ pricingUnit?: Maybe<Scalars['String']['output']>;
2962
+ /** The provider offering this service. Resolves even if the provider was later deleted. */
2963
+ provider?: Maybe<MtwServiceProvider>;
2964
+ providerId: Scalars['ID']['output'];
2965
+ /** Typical door-to-door transit time in days. */
2966
+ transitDays?: Maybe<Scalars['Int']['output']>;
2967
+ updatedAt: Scalars['DateTime']['output'];
2968
+ updatedBy?: Maybe<Scalars['String']['output']>;
2969
+ workspaceId: Scalars['ID']['output'];
2970
+ };
2971
+ /** What an offering provides. */
2972
+ export type MtwServiceOfferingCategory = 'AIR_FREIGHT' | 'COLD_CHAIN' | 'CUSTOMS_CLEARANCE' | 'EXPRESS' | 'FULL_TRUCKLOAD' | 'LAST_MILE' | 'LESS_THAN_TRUCKLOAD' | 'OCEAN_FREIGHT' | 'OTHER' | 'RAIL_FREIGHT' | 'WAREHOUSING';
2973
+ export type MtwServiceOfferingFilterInput = {
2974
+ availability?: InputMaybe<MtwServiceAvailability>;
2975
+ category?: InputMaybe<MtwServiceOfferingCategory>;
2976
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
2977
+ /** Only offerings at or below this price. */
2978
+ maxPrice?: InputMaybe<Scalars['Float']['input']>;
2979
+ providerId?: InputMaybe<Scalars['ID']['input']>;
2980
+ /** Case-insensitive match on name and description. */
2981
+ search?: InputMaybe<Scalars['String']['input']>;
2982
+ };
2983
+ /**
2984
+ * A vetted service provider (carrier, 3PL, warehouse, specialist) in this workspace's marketplace
2985
+ * directory. A provider becomes a shipment's carrier through `assignShipmentServiceProvider`.
2986
+ */
2987
+ export type MtwServiceProvider = {
2988
+ __typename?: 'MtwServiceProvider';
2989
+ /** Free-form contact details (for example contactName, email, phone, website). */
2990
+ contactInfo?: Maybe<Scalars['JSON']['output']>;
2991
+ createdAt: Scalars['DateTime']['output'];
2992
+ createdBy: Scalars['String']['output'];
2993
+ deletedAt?: Maybe<Scalars['DateTime']['output']>;
2994
+ description?: Maybe<Scalars['String']['output']>;
2995
+ id: Scalars['ID']['output'];
2996
+ isActive: Scalars['Boolean']['output'];
2997
+ /** Set by the workspace once it has vetted the provider. */
2998
+ isVerified: Scalars['Boolean']['output'];
2999
+ name: Scalars['String']['output'];
3000
+ /** The provider's live (not deleted) offerings, newest first. */
3001
+ offerings: Array<MtwServiceOffering>;
3002
+ /** Number of live offerings. */
3003
+ offeringsCount: Scalars['Int']['output'];
3004
+ onBehalfOf?: Maybe<Scalars['String']['output']>;
3005
+ /** The workspace's own rating of this provider, 0 to 5. Null when not yet rated. */
3006
+ rating?: Maybe<Scalars['Float']['output']>;
3007
+ /** Regions, lanes or cities the provider covers. */
3008
+ serviceAreas: Array<Scalars['String']['output']>;
3009
+ /** Short service tags, for example "reefer" or "hazmat". */
3010
+ services: Array<Scalars['String']['output']>;
3011
+ type: MtwServiceProviderType;
3012
+ updatedAt: Scalars['DateTime']['output'];
3013
+ updatedBy?: Maybe<Scalars['String']['output']>;
3014
+ workspaceId: Scalars['ID']['output'];
3015
+ };
3016
+ /**
3017
+ * A vetted service provider (carrier, 3PL, warehouse, specialist) in this workspace's marketplace
3018
+ * directory. A provider becomes a shipment's carrier through `assignShipmentServiceProvider`.
3019
+ */
3020
+ export type MtwServiceProviderOfferingsArgs = {
3021
+ pagination?: InputMaybe<PaginationInput>;
3022
+ };
3023
+ export type MtwServiceProviderFilterInput = {
3024
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
3025
+ isVerified?: InputMaybe<Scalars['Boolean']['input']>;
3026
+ /** Only providers with at least this rating. */
3027
+ minRating?: InputMaybe<Scalars['Float']['input']>;
3028
+ /** Case-insensitive match on name, description, services and service areas. */
3029
+ search?: InputMaybe<Scalars['String']['input']>;
3030
+ type?: InputMaybe<MtwServiceProviderType>;
3031
+ };
3032
+ /** Kind of service provider in the workspace marketplace directory (BOFF-3988, MOV-UC-13). */
3033
+ export type MtwServiceProviderType = 'CARRIER' | 'COURIER' | 'CUSTOMS_BROKER' | 'FREIGHT_FORWARDER' | 'LAST_MILE' | 'OTHER' | 'THIRD_PARTY_LOGISTICS' | 'WAREHOUSE';
2229
3034
  export type MtwShipment = {
2230
3035
  __typename?: 'MtwShipment';
2231
3036
  actualDelivery?: Maybe<Scalars['DateTime']['output']>;
@@ -2238,17 +3043,30 @@ export type MtwShipment = {
2238
3043
  deletedAt?: Maybe<Scalars['DateTime']['output']>;
2239
3044
  deliveryJob?: Maybe<MtwDeliveryJob>;
2240
3045
  deliveryJobId?: Maybe<Scalars['ID']['output']>;
3046
+ designatedIntegrationId?: Maybe<Scalars['ID']['output']>;
2241
3047
  destination: Scalars['JSON']['output'];
2242
3048
  estimatedDelivery?: Maybe<Scalars['DateTime']['output']>;
2243
3049
  freightCurrency?: Maybe<Scalars['String']['output']>;
2244
3050
  id: Scalars['ID']['output'];
2245
3051
  isMultiModal: Scalars['Boolean']['output'];
2246
3052
  legs: Array<MtwShipmentLeg>;
3053
+ maxFutureSkewSeconds?: Maybe<Scalars['Int']['output']>;
3054
+ maxSourceAgeSeconds?: Maybe<Scalars['Int']['output']>;
2247
3055
  onBehalfOf: Scalars['String']['output'];
2248
3056
  origin: Scalars['JSON']['output'];
2249
3057
  primaryMode: TransportMode;
3058
+ /**
3059
+ * The marketplace provider this shipment's carrier points at, when `carrierId` references one.
3060
+ * Resolves even if the provider was later deleted, so historical shipments keep their carrier.
3061
+ */
3062
+ serviceProvider?: Maybe<MtwServiceProvider>;
2250
3063
  shipmentNumber: Scalars['String']['output'];
2251
3064
  status: ShipmentStatus;
3065
+ statusAuthority: ShipmentStatusAuthority;
3066
+ statusAuthorityEpoch: Scalars['Int']['output'];
3067
+ statusBasisEventId?: Maybe<Scalars['ID']['output']>;
3068
+ statusBasisSourceTime?: Maybe<Scalars['DateTime']['output']>;
3069
+ statusRevision: Scalars['Int']['output'];
2252
3070
  storeOrder?: Maybe<StoreOrder>;
2253
3071
  storeOrderId?: Maybe<Scalars['ID']['output']>;
2254
3072
  totalFreightCost?: Maybe<Scalars['Float']['output']>;
@@ -2304,6 +3122,26 @@ export type MtwShipmentLeg = {
2304
3122
  widthCm?: Maybe<Scalars['Float']['output']>;
2305
3123
  workspaceId: Scalars['ID']['output'];
2306
3124
  };
3125
+ export type MtwShipmentStatusDecision = {
3126
+ __typename?: 'MtwShipmentStatusDecision';
3127
+ authorityEpoch: Scalars['Int']['output'];
3128
+ configuredIntegrationId?: Maybe<Scalars['ID']['output']>;
3129
+ configuredMaxFutureSkewSeconds?: Maybe<Scalars['Int']['output']>;
3130
+ configuredMaxSourceAgeSeconds?: Maybe<Scalars['Int']['output']>;
3131
+ createdBy: Scalars['ID']['output'];
3132
+ heldReason?: Maybe<ShipmentStatusHeldReason>;
3133
+ id: Scalars['ID']['output'];
3134
+ observedRevision: Scalars['Int']['output'];
3135
+ origin: ShipmentStatusDecisionOrigin;
3136
+ outcome: ShipmentStatusDecisionOutcome;
3137
+ priorStatus: ShipmentStatus;
3138
+ proofId?: Maybe<Scalars['ID']['output']>;
3139
+ reason?: Maybe<Scalars['String']['output']>;
3140
+ recordedAt: Scalars['DateTime']['output'];
3141
+ resultRevision: Scalars['Int']['output'];
3142
+ resultStatus: ShipmentStatus;
3143
+ trackingEventId?: Maybe<Scalars['ID']['output']>;
3144
+ };
2307
3145
  export type MtwShippingQuote = {
2308
3146
  __typename?: 'MtwShippingQuote';
2309
3147
  courierId: Scalars['String']['output'];
@@ -2561,13 +3399,48 @@ export type MtwStockObservationPage = {
2561
3399
  total: Scalars['Int']['output'];
2562
3400
  };
2563
3401
  export type MtwStockObservationStatus = 'UNRESOLVED';
3402
+ /**
3403
+ * A tracking alert. `alertType` is `DELAYED` once the promised delivery has
3404
+ * passed, or `AT_RISK` when the deterministic forecast predicts the promise will
3405
+ * be missed while it is still in the future. The risk fields are set only for
3406
+ * `AT_RISK` alerts.
3407
+ */
2564
3408
  export type MtwTrackingAlert = {
2565
3409
  __typename?: 'MtwTrackingAlert';
3410
+ /** True when an operator acknowledged this alert against the current promise. */
3411
+ acknowledged: Scalars['Boolean']['output'];
3412
+ acknowledgedAt?: Maybe<Scalars['DateTime']['output']>;
3413
+ acknowledgedBy?: Maybe<Scalars['ID']['output']>;
2566
3414
  alertType: Scalars['String']['output'];
3415
+ /** Stable alert id, `<shipmentId>:<alertType>`. */
3416
+ id: Scalars['ID']['output'];
2567
3417
  message: Scalars['String']['output'];
3418
+ predictedDelivery?: Maybe<Scalars['DateTime']['output']>;
3419
+ /** The shipment's promised delivery (estimatedDelivery) the alert was raised against. */
3420
+ promisedDelivery?: Maybe<Scalars['DateTime']['output']>;
3421
+ riskScore?: Maybe<Scalars['Int']['output']>;
2568
3422
  shipmentId: Scalars['ID']['output'];
2569
3423
  shipmentNumber: Scalars['String']['output'];
3424
+ signals?: Maybe<Array<MtwRiskSignalCode>>;
3425
+ };
3426
+ /**
3427
+ * A persisted acknowledgement of a tracking alert. It holds while the shipment
3428
+ * keeps the promised delivery it was recorded against; re-promising the shipment
3429
+ * re-raises the alert.
3430
+ */
3431
+ export type MtwTrackingAlertAcknowledgement = {
3432
+ __typename?: 'MtwTrackingAlertAcknowledgement';
3433
+ acknowledged: Scalars['Boolean']['output'];
3434
+ acknowledgedAt: Scalars['DateTime']['output'];
3435
+ acknowledgedBy: Scalars['ID']['output'];
3436
+ alertType: MtwTrackingAlertType;
3437
+ /** Same id as the acknowledged `MtwTrackingAlert`. */
3438
+ id: Scalars['ID']['output'];
3439
+ promisedDelivery?: Maybe<Scalars['DateTime']['output']>;
3440
+ shipmentId: Scalars['ID']['output'];
2570
3441
  };
3442
+ /** Alert types `trackingAlerts` raises; used to acknowledge one. */
3443
+ export type MtwTrackingAlertType = 'AT_RISK' | 'DELAYED';
2571
3444
  export type MtwTrackingEvent = {
2572
3445
  __typename?: 'MtwTrackingEvent';
2573
3446
  context?: Maybe<OperationContext>;
@@ -2579,7 +3452,11 @@ export type MtwTrackingEvent = {
2579
3452
  id: Scalars['ID']['output'];
2580
3453
  location?: Maybe<Scalars['JSON']['output']>;
2581
3454
  onBehalfOf: Scalars['String']['output'];
3455
+ providerEventTime?: Maybe<Scalars['DateTime']['output']>;
3456
+ serverReceivedAt?: Maybe<Scalars['DateTime']['output']>;
2582
3457
  shipmentId: Scalars['ID']['output'];
3458
+ sourceIntegrationId?: Maybe<Scalars['ID']['output']>;
3459
+ sourceTimestampProvenance: TrackingSourceTimeProvenance;
2583
3460
  timestamp: Scalars['DateTime']['output'];
2584
3461
  updatedAt: Scalars['DateTime']['output'];
2585
3462
  updatedBy?: Maybe<Scalars['String']['output']>;
@@ -2658,6 +3535,28 @@ export type MtwTripUtilizationSummary = {
2658
3535
  tripId: Scalars['ID']['output'];
2659
3536
  unknownFactsSegmentCount: Scalars['Int']['output'];
2660
3537
  };
3538
+ export type MtwUpdateServiceOfferingInput = {
3539
+ availability?: InputMaybe<MtwServiceAvailability>;
3540
+ category?: InputMaybe<MtwServiceOfferingCategory>;
3541
+ currency?: InputMaybe<Scalars['String']['input']>;
3542
+ description?: InputMaybe<Scalars['String']['input']>;
3543
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
3544
+ name?: InputMaybe<Scalars['String']['input']>;
3545
+ price?: InputMaybe<Scalars['Float']['input']>;
3546
+ pricingUnit?: InputMaybe<Scalars['String']['input']>;
3547
+ transitDays?: InputMaybe<Scalars['Int']['input']>;
3548
+ };
3549
+ export type MtwUpdateServiceProviderInput = {
3550
+ contactInfo?: InputMaybe<Scalars['JSON']['input']>;
3551
+ description?: InputMaybe<Scalars['String']['input']>;
3552
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
3553
+ isVerified?: InputMaybe<Scalars['Boolean']['input']>;
3554
+ name?: InputMaybe<Scalars['String']['input']>;
3555
+ rating?: InputMaybe<Scalars['Float']['input']>;
3556
+ serviceAreas?: InputMaybe<Array<Scalars['String']['input']>>;
3557
+ services?: InputMaybe<Array<Scalars['String']['input']>>;
3558
+ type?: InputMaybe<MtwServiceProviderType>;
3559
+ };
2661
3560
  export type MtwUtilizationCapacityBasis = 'MEASURED' | 'RATED';
2662
3561
  export type MtwUtilizationDistanceBasis = 'MEASURED' | 'OPERATOR_ESTIMATE' | 'PROVIDER_ESTIMATE';
2663
3562
  export type MtwUtilizationDistanceCoverage = {
@@ -2793,10 +3692,18 @@ export type Mutation = {
2793
3692
  __typename?: 'Mutation';
2794
3693
  _empty?: Maybe<Scalars['String']['output']>;
2795
3694
  acceptMtwReuseReservation: MtwReuseReservation;
3695
+ acknowledgeMtwTrackingAlert: MtwTrackingAlertAcknowledgement;
2796
3696
  addShipmentLeg: MtwShipmentLeg;
2797
3697
  addTrackingEvent: MtwTrackingEvent;
2798
3698
  adjustInventoryStock: MtwInventoryItem;
3699
+ approveMtwPickTask: MtwPickReview;
2799
3700
  assignDriverVehicle: MtwDriver;
3701
+ /**
3702
+ * Makes a marketplace provider the shipment's carrier (sets `carrierId`), or clears the carrier when
3703
+ * `providerId` is null. Inactive or unverified providers are allowed; the flags are surfaced so the
3704
+ * operator decides.
3705
+ */
3706
+ assignShipmentServiceProvider: MtwShipment;
2800
3707
  /**
2801
3708
  * Type B self-scoped capture: the calling actor must be the Driver assigned
2802
3709
  * to `input.deliveryJobId` (resolved via Driver.userId), enforced in the
@@ -2805,6 +3712,8 @@ export type Mutation = {
2805
3712
  */
2806
3713
  captureEpod: MtwProofOfDelivery;
2807
3714
  closeMtwContainerCycle: MtwContainerCycle;
3715
+ compareMtwFreightInvoice: MtwFreightInvoiceComparison;
3716
+ configureShipmentStatusSource: MtwShipment;
2808
3717
  createCargoItem: MtwCargoItem;
2809
3718
  createCustomer: MtwCustomer;
2810
3719
  createDeliveryJob: MtwDeliveryJob;
@@ -2814,6 +3723,8 @@ export type Mutation = {
2814
3723
  createInventoryTransaction: MtwInventoryTransaction;
2815
3724
  createMtwPickTaskIntent: MtwPickTask;
2816
3725
  createRoute: MtwRoute;
3726
+ createServiceOffering: MtwServiceOffering;
3727
+ createServiceProvider: MtwServiceProvider;
2817
3728
  createShipment: MtwShipment;
2818
3729
  createVehicle: MtwVehicle;
2819
3730
  createWarehouse: MtwWarehouse;
@@ -2825,6 +3736,9 @@ export type Mutation = {
2825
3736
  deleteIntegration: Scalars['Boolean']['output'];
2826
3737
  deleteInventoryItem: Scalars['Boolean']['output'];
2827
3738
  deleteRoute: Scalars['Boolean']['output'];
3739
+ deleteServiceOffering: Scalars['Boolean']['output'];
3740
+ /** Soft-deletes the provider and its offerings. Shipments that already reference it keep the reference. */
3741
+ deleteServiceProvider: Scalars['Boolean']['output'];
2828
3742
  deleteShipment: Scalars['Boolean']['output'];
2829
3743
  deleteVehicle: Scalars['Boolean']['output'];
2830
3744
  deleteWarehouse: Scalars['Boolean']['output'];
@@ -2852,10 +3766,12 @@ export type Mutation = {
2852
3766
  recordMtwTripUtilizationReport: MtwTripUtilizationReport;
2853
3767
  recordVehicleService: MtwVehicle;
2854
3768
  registerMtwContainer: MtwContainer;
3769
+ rejectMtwPickTask: MtwPickReview;
2855
3770
  releaseMtwContainerHold: MtwContainerReleaseDecision;
2856
3771
  removeShipmentLeg: Scalars['Boolean']['output'];
2857
3772
  requestMtwFreeTimeExtension: MtwFreeTimeExtension;
2858
3773
  revokeMtwInspectorQualification: MtwInspectorQualification;
3774
+ revokeMtwPickTaskReview: MtwPickReview;
2859
3775
  revokeMtwProcedureDeviation: MtwProcedureDeviation;
2860
3776
  saveMtwConsolidationManifest: MtwConsolidationManifest;
2861
3777
  saveMtwConsolidationPlan: MtwConsolidationPlan;
@@ -2874,6 +3790,8 @@ export type Mutation = {
2874
3790
  updateIntegration: MtwIntegration;
2875
3791
  updateInventoryItem: MtwInventoryItem;
2876
3792
  updateRoute: MtwRoute;
3793
+ updateServiceOffering: MtwServiceOffering;
3794
+ updateServiceProvider: MtwServiceProvider;
2877
3795
  updateShipment: MtwShipment;
2878
3796
  updateVehicle: MtwVehicle;
2879
3797
  updateVehicleLocation: MtwVehicle;
@@ -2885,6 +3803,10 @@ export type Mutation = {
2885
3803
  export type MutationAcceptMtwReuseReservationArgs = {
2886
3804
  input: AcceptMtwReuseReservationInput;
2887
3805
  };
3806
+ export type MutationAcknowledgeMtwTrackingAlertArgs = {
3807
+ alertType: MtwTrackingAlertType;
3808
+ shipmentId: Scalars['ID']['input'];
3809
+ };
2888
3810
  export type MutationAddShipmentLegArgs = {
2889
3811
  input: CreateShipmentLegInput;
2890
3812
  shipmentId: Scalars['ID']['input'];
@@ -2895,16 +3817,30 @@ export type MutationAddTrackingEventArgs = {
2895
3817
  export type MutationAdjustInventoryStockArgs = {
2896
3818
  input: AdjustInventoryStockInput;
2897
3819
  };
3820
+ export type MutationApproveMtwPickTaskArgs = {
3821
+ input: RecordMtwPickReviewInput;
3822
+ };
2898
3823
  export type MutationAssignDriverVehicleArgs = {
2899
3824
  id: Scalars['ID']['input'];
2900
3825
  vehicleId?: InputMaybe<Scalars['ID']['input']>;
2901
3826
  };
3827
+ export type MutationAssignShipmentServiceProviderArgs = {
3828
+ providerId?: InputMaybe<Scalars['ID']['input']>;
3829
+ shipmentId: Scalars['ID']['input'];
3830
+ };
2902
3831
  export type MutationCaptureEpodArgs = {
2903
3832
  input: CaptureEpodInput;
2904
3833
  };
2905
3834
  export type MutationCloseMtwContainerCycleArgs = {
2906
3835
  input: CloseMtwContainerCycleInput;
2907
3836
  };
3837
+ export type MutationCompareMtwFreightInvoiceArgs = {
3838
+ input: CompareMtwFreightInvoiceInput;
3839
+ };
3840
+ export type MutationConfigureShipmentStatusSourceArgs = {
3841
+ id: Scalars['ID']['input'];
3842
+ input: ConfigureShipmentStatusSourceInput;
3843
+ };
2908
3844
  export type MutationCreateCargoItemArgs = {
2909
3845
  input: CreateCargoItemInput;
2910
3846
  };
@@ -2932,6 +3868,12 @@ export type MutationCreateMtwPickTaskIntentArgs = {
2932
3868
  export type MutationCreateRouteArgs = {
2933
3869
  input: CreateRouteInput;
2934
3870
  };
3871
+ export type MutationCreateServiceOfferingArgs = {
3872
+ input: MtwCreateServiceOfferingInput;
3873
+ };
3874
+ export type MutationCreateServiceProviderArgs = {
3875
+ input: MtwCreateServiceProviderInput;
3876
+ };
2935
3877
  export type MutationCreateShipmentArgs = {
2936
3878
  input: CreateShipmentInput;
2937
3879
  };
@@ -2965,6 +3907,12 @@ export type MutationDeleteInventoryItemArgs = {
2965
3907
  export type MutationDeleteRouteArgs = {
2966
3908
  id: Scalars['ID']['input'];
2967
3909
  };
3910
+ export type MutationDeleteServiceOfferingArgs = {
3911
+ id: Scalars['ID']['input'];
3912
+ };
3913
+ export type MutationDeleteServiceProviderArgs = {
3914
+ id: Scalars['ID']['input'];
3915
+ };
2968
3916
  export type MutationDeleteShipmentArgs = {
2969
3917
  id: Scalars['ID']['input'];
2970
3918
  };
@@ -3047,6 +3995,9 @@ export type MutationRecordVehicleServiceArgs = {
3047
3995
  export type MutationRegisterMtwContainerArgs = {
3048
3996
  input: RegisterMtwContainerInput;
3049
3997
  };
3998
+ export type MutationRejectMtwPickTaskArgs = {
3999
+ input: RecordMtwPickReviewInput;
4000
+ };
3050
4001
  export type MutationReleaseMtwContainerHoldArgs = {
3051
4002
  input: ReleaseMtwContainerHoldInput;
3052
4003
  };
@@ -3059,6 +4010,9 @@ export type MutationRequestMtwFreeTimeExtensionArgs = {
3059
4010
  export type MutationRevokeMtwInspectorQualificationArgs = {
3060
4011
  input: RevokeMtwInspectorQualificationInput;
3061
4012
  };
4013
+ export type MutationRevokeMtwPickTaskReviewArgs = {
4014
+ input: RecordMtwPickReviewInput;
4015
+ };
3062
4016
  export type MutationRevokeMtwProcedureDeviationArgs = {
3063
4017
  input: RevokeMtwProcedureDeviationInput;
3064
4018
  };
@@ -3123,6 +4077,14 @@ export type MutationUpdateRouteArgs = {
3123
4077
  id: Scalars['ID']['input'];
3124
4078
  input: UpdateRouteInput;
3125
4079
  };
4080
+ export type MutationUpdateServiceOfferingArgs = {
4081
+ id: Scalars['ID']['input'];
4082
+ input: MtwUpdateServiceOfferingInput;
4083
+ };
4084
+ export type MutationUpdateServiceProviderArgs = {
4085
+ id: Scalars['ID']['input'];
4086
+ input: MtwUpdateServiceProviderInput;
4087
+ };
3126
4088
  export type MutationUpdateShipmentArgs = {
3127
4089
  id: Scalars['ID']['input'];
3128
4090
  input: UpdateShipmentInput;
@@ -3203,6 +4165,12 @@ export type PlanMultiModalShipmentInput = {
3203
4165
  shipmentNumber: Scalars['String']['input'];
3204
4166
  storeOrderId?: InputMaybe<Scalars['ID']['input']>;
3205
4167
  };
4168
+ export type PreviewMtwFreightInvoiceInput = {
4169
+ estimateVersionId: Scalars['ID']['input'];
4170
+ evidence?: InputMaybe<Array<MtwContainerEvidenceInput>>;
4171
+ facts: MtwFreightInvoiceFactsInput;
4172
+ shipmentId: Scalars['ID']['input'];
4173
+ };
3206
4174
  export type PublishMtwProcedureVersionInput = {
3207
4175
  effectiveAt: Scalars['DateTime']['input'];
3208
4176
  evidence: Array<MtwContainerEvidenceInput>;
@@ -3264,6 +4232,7 @@ export type Query = {
3264
4232
  inventoryStats: MtwInventoryStats;
3265
4233
  inventoryTransactions: Array<MtwInventoryTransaction>;
3266
4234
  inventoryTransactionsCount: Scalars['Int']['output'];
4235
+ marketplaceStats: MtwMarketplaceStats;
3267
4236
  mtwApplicableProcedures: MtwProcedureApplicability;
3268
4237
  mtwConsolidationManifest: MtwConsolidationManifest;
3269
4238
  mtwConsolidationManifestPage: MtwConsolidationManifestPage;
@@ -3271,6 +4240,7 @@ export type Query = {
3271
4240
  mtwConsolidationObservationPage: MtwConsolidationObservationPage;
3272
4241
  mtwConsolidationPlan: MtwConsolidationPlan;
3273
4242
  mtwConsolidationPlanPage: MtwConsolidationPlanPage;
4243
+ mtwConsumedFuelPreview: MtwConsumedFuelPreview;
3274
4244
  mtwContainer?: Maybe<MtwContainer>;
3275
4245
  mtwContainerCyclePage: MtwContainerCyclePage;
3276
4246
  mtwContainerCycles: Array<MtwContainerCycle>;
@@ -3294,7 +4264,14 @@ export type Query = {
3294
4264
  mtwFreeTimeExtensionPage: MtwFreeTimeExtensionPage;
3295
4265
  mtwFreightEstimatePage: MtwFreightEstimatePage;
3296
4266
  mtwFreightEstimateVersion: MtwFreightEstimateVersion;
4267
+ mtwFreightInvoiceComparison: MtwFreightInvoiceComparison;
4268
+ /** Null is not proof of no effect and never authorizes resubmission. Exact original actor/context only. */
4269
+ mtwFreightInvoiceComparisonByRequestKey?: Maybe<MtwFreightInvoiceComparison>;
4270
+ mtwFreightInvoiceComparisonPage: MtwFreightInvoiceComparisonPage;
4271
+ mtwPalletGeometryPreview: MtwPalletGeometryPreview;
3297
4272
  mtwPickPreparation: MtwPickPreparation;
4273
+ mtwPickReview: MtwPickReview;
4274
+ mtwPickReviewPage: MtwPickReviewPage;
3298
4275
  mtwPickTask: MtwPickTask;
3299
4276
  mtwPickTaskPage: MtwPickTaskPage;
3300
4277
  mtwProcedureDeviationPage: MtwProcedureDeviationPage;
@@ -3307,11 +4284,13 @@ export type Query = {
3307
4284
  mtwReuseProposalPage: MtwReuseProposalPage;
3308
4285
  mtwReuseReservationPage: MtwReuseReservationPage;
3309
4286
  mtwReuseReservationTransitionPage: MtwReuseReservationTransitionPage;
4287
+ mtwShipmentRiskForecast: MtwRiskForecast;
3310
4288
  mtwStockBindingAssessment: MtwStockBindingAssessment;
3311
4289
  mtwStockBindingAssessmentPage: MtwStockBindingAssessmentPage;
3312
4290
  mtwStockObservation: MtwStockObservation;
3313
4291
  mtwStockObservationPage: MtwStockObservationPage;
3314
4292
  mtwTripUtilizationReportPage: MtwTripUtilizationReportPage;
4293
+ myEpodShipmentStatus?: Maybe<MtwOwnedEpodShipmentStatus>;
3315
4294
  /**
3316
4295
  * Type C self-list: delivery jobs assigned to the CALLING driver that are out
3317
4296
  * for delivery/in transit and still awaiting ePOD capture. Feeds the
@@ -3320,13 +4299,20 @@ export type Query = {
3320
4299
  myPendingEpodDeliveryJobs: Array<MtwDeliveryJob>;
3321
4300
  myPendingEpodDeliveryJobsCount: Scalars['Int']['output'];
3322
4301
  previewMtwConsolidationManifest: MtwConsolidationSnapshot;
4302
+ previewMtwFreightInvoice: MtwFreightInvoicePreview;
3323
4303
  previewMtwFreightTotal: MtwFreightPreview;
3324
4304
  route?: Maybe<MtwRoute>;
3325
4305
  routeStats: MtwRouteStats;
3326
4306
  routes: Array<MtwRoute>;
3327
4307
  routesCount: Scalars['Int']['output'];
4308
+ serviceOffering?: Maybe<MtwServiceOffering>;
4309
+ serviceOfferings: Array<MtwServiceOffering>;
4310
+ serviceProvider?: Maybe<MtwServiceProvider>;
4311
+ serviceProviders: Array<MtwServiceProvider>;
4312
+ serviceProvidersCount: Scalars['Int']['output'];
3328
4313
  shipment?: Maybe<MtwShipment>;
3329
4314
  shipmentLegs: Array<MtwShipmentLeg>;
4315
+ shipmentStatusDecisions: Array<MtwShipmentStatusDecision>;
3330
4316
  shipmentTracking: Array<MtwTrackingEvent>;
3331
4317
  shipments: Array<MtwShipment>;
3332
4318
  shipmentsCount: Scalars['Int']['output'];
@@ -3473,6 +4459,9 @@ export type QueryMtwConsolidationPlanPageArgs = {
3473
4459
  planReference?: InputMaybe<Scalars['String']['input']>;
3474
4460
  shipmentId: Scalars['ID']['input'];
3475
4461
  };
4462
+ export type QueryMtwConsumedFuelPreviewArgs = {
4463
+ input: MtwConsumedFuelPreviewInput;
4464
+ };
3476
4465
  export type QueryMtwContainerArgs = {
3477
4466
  id: Scalars['ID']['input'];
3478
4467
  };
@@ -3559,10 +4548,35 @@ export type QueryMtwFreightEstimateVersionArgs = {
3559
4548
  id: Scalars['ID']['input'];
3560
4549
  shipmentId: Scalars['ID']['input'];
3561
4550
  };
4551
+ export type QueryMtwFreightInvoiceComparisonArgs = {
4552
+ id: Scalars['ID']['input'];
4553
+ shipmentId: Scalars['ID']['input'];
4554
+ };
4555
+ export type QueryMtwFreightInvoiceComparisonByRequestKeyArgs = {
4556
+ requestKey: Scalars['String']['input'];
4557
+ shipmentId: Scalars['ID']['input'];
4558
+ };
4559
+ export type QueryMtwFreightInvoiceComparisonPageArgs = {
4560
+ invoiceIdentityId: Scalars['ID']['input'];
4561
+ pagination?: InputMaybe<MtwContainerPagination>;
4562
+ shipmentId: Scalars['ID']['input'];
4563
+ };
4564
+ export type QueryMtwPalletGeometryPreviewArgs = {
4565
+ input: MtwPalletGeometryPreviewInput;
4566
+ };
3562
4567
  export type QueryMtwPickPreparationArgs = {
3563
4568
  destinationInventoryItemId: Scalars['ID']['input'];
3564
4569
  sourceInventoryItemId: Scalars['ID']['input'];
3565
4570
  };
4571
+ export type QueryMtwPickReviewArgs = {
4572
+ id: Scalars['ID']['input'];
4573
+ taskId: Scalars['ID']['input'];
4574
+ };
4575
+ export type QueryMtwPickReviewPageArgs = {
4576
+ limit?: Scalars['Int']['input'];
4577
+ offset?: Scalars['Int']['input'];
4578
+ taskId: Scalars['ID']['input'];
4579
+ };
3566
4580
  export type QueryMtwPickTaskArgs = {
3567
4581
  id: Scalars['ID']['input'];
3568
4582
  };
@@ -3609,6 +4623,9 @@ export type QueryMtwReuseReservationTransitionPageArgs = {
3609
4623
  pagination?: InputMaybe<MtwContainerPagination>;
3610
4624
  reservationId: Scalars['ID']['input'];
3611
4625
  };
4626
+ export type QueryMtwShipmentRiskForecastArgs = {
4627
+ shipmentId: Scalars['ID']['input'];
4628
+ };
3612
4629
  export type QueryMtwStockBindingAssessmentArgs = {
3613
4630
  id: Scalars['ID']['input'];
3614
4631
  inventoryItemId: Scalars['ID']['input'];
@@ -3629,6 +4646,9 @@ export type QueryMtwTripUtilizationReportPageArgs = {
3629
4646
  pagination?: InputMaybe<MtwContainerPagination>;
3630
4647
  routeId: Scalars['ID']['input'];
3631
4648
  };
4649
+ export type QueryMyEpodShipmentStatusArgs = {
4650
+ deliveryJobId: Scalars['ID']['input'];
4651
+ };
3632
4652
  export type QueryMyPendingEpodDeliveryJobsArgs = {
3633
4653
  pagination?: InputMaybe<PaginationInput>;
3634
4654
  };
@@ -3636,6 +4656,9 @@ export type QueryPreviewMtwConsolidationManifestArgs = {
3636
4656
  expectedObservationSequence: Scalars['Int']['input'];
3637
4657
  planId: Scalars['ID']['input'];
3638
4658
  };
4659
+ export type QueryPreviewMtwFreightInvoiceArgs = {
4660
+ input: PreviewMtwFreightInvoiceInput;
4661
+ };
3639
4662
  export type QueryPreviewMtwFreightTotalArgs = {
3640
4663
  input: MtwFreightFactsInput;
3641
4664
  };
@@ -3649,12 +4672,33 @@ export type QueryRoutesArgs = {
3649
4672
  export type QueryRoutesCountArgs = {
3650
4673
  filter?: InputMaybe<RouteFilterInput>;
3651
4674
  };
4675
+ export type QueryServiceOfferingArgs = {
4676
+ id: Scalars['ID']['input'];
4677
+ };
4678
+ export type QueryServiceOfferingsArgs = {
4679
+ filter?: InputMaybe<MtwServiceOfferingFilterInput>;
4680
+ pagination?: InputMaybe<PaginationInput>;
4681
+ };
4682
+ export type QueryServiceProviderArgs = {
4683
+ id: Scalars['ID']['input'];
4684
+ };
4685
+ export type QueryServiceProvidersArgs = {
4686
+ filter?: InputMaybe<MtwServiceProviderFilterInput>;
4687
+ pagination?: InputMaybe<PaginationInput>;
4688
+ };
4689
+ export type QueryServiceProvidersCountArgs = {
4690
+ filter?: InputMaybe<MtwServiceProviderFilterInput>;
4691
+ };
3652
4692
  export type QueryShipmentArgs = {
3653
4693
  id: Scalars['ID']['input'];
3654
4694
  };
3655
4695
  export type QueryShipmentLegsArgs = {
3656
4696
  shipmentId: Scalars['ID']['input'];
3657
4697
  };
4698
+ export type QueryShipmentStatusDecisionsArgs = {
4699
+ pagination?: InputMaybe<PaginationInput>;
4700
+ shipmentId: Scalars['ID']['input'];
4701
+ };
3658
4702
  export type QueryShipmentTrackingArgs = {
3659
4703
  pagination?: InputMaybe<PaginationInput>;
3660
4704
  shipmentId: Scalars['ID']['input'];
@@ -3797,6 +4841,22 @@ export type RecordMtwFreeTimeExtensionDecisionInput = {
3797
4841
  note: Scalars['String']['input'];
3798
4842
  sourceReference: Scalars['String']['input'];
3799
4843
  };
4844
+ export type RecordMtwPickReviewInput = {
4845
+ actions: Array<MtwPickReviewAction>;
4846
+ evidence: Array<MtwContainerEvidenceInput>;
4847
+ expectedPreviousDecisionId?: InputMaybe<Scalars['ID']['input']>;
4848
+ expectedVersion: Scalars['Int']['input'];
4849
+ handlingPolicy?: InputMaybe<MtwMoveReviewSourceInput>;
4850
+ idempotencyKey: Scalars['String']['input'];
4851
+ intentHash: Scalars['String']['input'];
4852
+ note: Scalars['String']['input'];
4853
+ quantityCeiling?: InputMaybe<Scalars['Int']['input']>;
4854
+ sop?: InputMaybe<MtwMoveReviewSourceInput>;
4855
+ subjectActorId: Scalars['ID']['input'];
4856
+ taskId: Scalars['ID']['input'];
4857
+ validFrom?: InputMaybe<Scalars['DateTime']['input']>;
4858
+ validUntil?: InputMaybe<Scalars['DateTime']['input']>;
4859
+ };
3800
4860
  export type RecordMtwProcedureDeviationInput = {
3801
4861
  evidence: Array<MtwContainerEvidenceInput>;
3802
4862
  executionId: Scalars['ID']['input'];
@@ -3966,6 +5026,7 @@ export type SaveMtwConsolidationPlanInput = {
3966
5026
  shipmentId: Scalars['ID']['input'];
3967
5027
  };
3968
5028
  export type SaveMtwFreightEstimateInput = {
5029
+ commercialCapture?: InputMaybe<MtwFreightCommercialCaptureInput>;
3969
5030
  estimateReference: Scalars['String']['input'];
3970
5031
  evidence: Array<MtwContainerEvidenceInput>;
3971
5032
  expectedPreviousVersionId?: InputMaybe<Scalars['ID']['input']>;
@@ -3989,6 +5050,10 @@ export type ShipmentFilterInput = {
3989
5050
  };
3990
5051
  export type ShipmentLegStatus = 'ARRIVED' | 'BOOKED' | 'CANCELLED' | 'DELIVERED' | 'IN_TRANSIT' | 'PLANNED';
3991
5052
  export type ShipmentStatus = 'DELIVERED' | 'FAILED' | 'IN_TRANSIT' | 'PICKED_UP' | 'PLANNED' | 'RETURNED';
5053
+ export type ShipmentStatusAuthority = 'INTEGRATION_EVENT_TIME' | 'LEGACY_HOLD' | 'MANUAL_HOLD';
5054
+ export type ShipmentStatusDecisionOrigin = 'DIRECT_TRACKING' | 'EPOD' | 'INITIAL_CREATION' | 'INTEGRATION' | 'MANUAL' | 'SOURCE_CONFIGURATION';
5055
+ export type ShipmentStatusDecisionOutcome = 'APPLIED' | 'HELD';
5056
+ 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
5057
  export type ShippingQuoteInput = {
3993
5058
  /** Cash on delivery. */
3994
5059
  cod?: InputMaybe<Scalars['Boolean']['input']>;
@@ -4040,6 +5105,7 @@ export type TerminateMtwReuseReservationInput = {
4040
5105
  status: MtwReuseReservationTerminalStatus;
4041
5106
  };
4042
5107
  export type TrackingEventType = 'ARRIVED' | 'CREATED' | 'DELIVERED' | 'DEPARTED' | 'FAILED' | 'IN_TRANSIT' | 'OUT_FOR_DELIVERY' | 'PICKED_UP' | 'RETURNED';
5108
+ export type TrackingSourceTimeProvenance = 'LEGACY_UNKNOWN' | 'PROVIDER_TIME_UNVERIFIED' | 'PROVIDER_TIME_VALIDATED' | 'RECEIPT_TIME_FALLBACK';
4043
5109
  export type TransferInventoryStockInput = {
4044
5110
  destinationInventoryItemId: Scalars['ID']['input'];
4045
5111
  quantity: Scalars['Int']['input'];
@@ -4162,8 +5228,10 @@ export type UpdateShipmentInput = {
4162
5228
  deliveryJobId?: InputMaybe<Scalars['ID']['input']>;
4163
5229
  destination?: InputMaybe<Scalars['JSON']['input']>;
4164
5230
  estimatedDelivery?: InputMaybe<Scalars['DateTime']['input']>;
5231
+ expectedStatusRevision?: InputMaybe<Scalars['Int']['input']>;
4165
5232
  origin?: InputMaybe<Scalars['JSON']['input']>;
4166
5233
  status?: InputMaybe<ShipmentStatus>;
5234
+ statusReason?: InputMaybe<Scalars['String']['input']>;
4167
5235
  storeOrderId?: InputMaybe<Scalars['ID']['input']>;
4168
5236
  trackingNumber?: InputMaybe<Scalars['String']['input']>;
4169
5237
  };