@burdenoff/microfe-movethewheels 2026.1031.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.
@@ -45,8 +45,10 @@ export type AdjustInventoryStockInput = {
45
45
  };
46
46
 
47
47
  export type CaptureEpodInput = {
48
+ completionAttestation?: InputMaybe<Scalars['Boolean']['input']>;
48
49
  context?: InputMaybe<ContextInput>;
49
50
  deliveryJobId: Scalars['ID']['input'];
51
+ expectedShipmentStatusRevision?: InputMaybe<Scalars['Int']['input']>;
50
52
  latitude?: InputMaybe<Scalars['Float']['input']>;
51
53
  locationAccuracy?: InputMaybe<Scalars['Float']['input']>;
52
54
  longitude?: InputMaybe<Scalars['Float']['input']>;
@@ -69,6 +71,26 @@ export type CloseMtwContainerCycleInput = {
69
71
  idempotencyKey: Scalars['String']['input'];
70
72
  };
71
73
 
74
+ export type CompareMtwFreightInvoiceInput = {
75
+ correctionReason?: InputMaybe<Scalars['String']['input']>;
76
+ estimateVersionId: Scalars['ID']['input'];
77
+ evidence: Array<MtwContainerEvidenceInput>;
78
+ expectedPreviousComparisonId?: InputMaybe<Scalars['ID']['input']>;
79
+ expectedRevision: Scalars['Int']['input'];
80
+ facts: MtwFreightInvoiceFactsInput;
81
+ idempotencyKey: Scalars['String']['input'];
82
+ shipmentId: Scalars['ID']['input'];
83
+ };
84
+
85
+ export type ConfigureShipmentStatusSourceInput = {
86
+ basisTrackingEventId: Scalars['ID']['input'];
87
+ expectedStatusRevision: Scalars['Int']['input'];
88
+ integrationId: Scalars['ID']['input'];
89
+ maxFutureSkewSeconds: Scalars['Int']['input'];
90
+ maxSourceAgeSeconds: Scalars['Int']['input'];
91
+ reason: Scalars['String']['input'];
92
+ };
93
+
72
94
  export type ContextFilterInput = {
73
95
  appId?: InputMaybe<Scalars['ID']['input']>;
74
96
  projectId?: InputMaybe<Scalars['ID']['input']>;
@@ -455,7 +477,7 @@ export type MtwAnalyticsSeries = {
455
477
  revenueTrend: Array<MtwAnalyticsPoint>;
456
478
  };
457
479
 
458
- /** Ranked vehicles and drivers that can take a route right now, best first. */
480
+ /** Ranked candidates from recorded status, expiry and known live routes; not legal, maintenance or duty-hours clearance. */
459
481
  export type MtwAssignmentSuggestions = {
460
482
  __typename?: 'MtwAssignmentSuggestions';
461
483
  drivers: Array<MtwDriverSuggestion>;
@@ -744,6 +766,40 @@ export type MtwConsolidationSourceInput = {
744
766
  revision?: InputMaybe<Scalars['String']['input']>;
745
767
  };
746
768
 
769
+ export type MtwConsumedFuelBasis =
770
+ | 'ESTIMATED_CONSUMPTION'
771
+ | 'MEASURED_CONSUMPTION'
772
+ | 'PURCHASED_OR_REFUELLED'
773
+ | 'UNKNOWN';
774
+
775
+ export type MtwConsumedFuelPreview = {
776
+ __typename?: 'MtwConsumedFuelPreview';
777
+ distance?: Maybe<MtwFuelDistanceObservation>;
778
+ fuel?: Maybe<MtwFuelVolumeObservation>;
779
+ litresPer100Km?: Maybe<Scalars['Float']['output']>;
780
+ qualification: MtwConsumedFuelQualification;
781
+ reasons: Array<MtwConsumedFuelReason>;
782
+ status: MtwUtilizationMetricStatus;
783
+ };
784
+
785
+ export type MtwConsumedFuelPreviewInput = {
786
+ distance?: InputMaybe<MtwFuelDistanceObservationInput>;
787
+ fuel?: InputMaybe<MtwFuelVolumeObservationInput>;
788
+ };
789
+
790
+ export type MtwConsumedFuelQualification =
791
+ | 'OPERATOR_REPORTED_UNVERIFIED';
792
+
793
+ export type MtwConsumedFuelReason =
794
+ | 'DISTANCE_UNKNOWN'
795
+ | 'FUEL_UNKNOWN'
796
+ | 'INTERVAL_MISMATCH'
797
+ | 'NON_MEASURED_DISTANCE'
798
+ | 'PARTIAL_COVERAGE'
799
+ | 'SOURCE_UNKNOWN'
800
+ | 'UNSUPPORTED_FUEL_BASIS'
801
+ | 'ZERO_DISTANCE';
802
+
747
803
  export type MtwContainer = {
748
804
  __typename?: 'MtwContainer';
749
805
  containerNumber: Scalars['String']['output'];
@@ -1022,6 +1078,31 @@ export type MtwContainerSuitability =
1022
1078
  | 'REJECTED'
1023
1079
  | 'REVIEW_REQUIRED';
1024
1080
 
1081
+ export type MtwCreateServiceOfferingInput = {
1082
+ availability?: InputMaybe<MtwServiceAvailability>;
1083
+ category: MtwServiceOfferingCategory;
1084
+ currency?: InputMaybe<Scalars['String']['input']>;
1085
+ description?: InputMaybe<Scalars['String']['input']>;
1086
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
1087
+ name: Scalars['String']['input'];
1088
+ price?: InputMaybe<Scalars['Float']['input']>;
1089
+ pricingUnit?: InputMaybe<Scalars['String']['input']>;
1090
+ providerId: Scalars['ID']['input'];
1091
+ transitDays?: InputMaybe<Scalars['Int']['input']>;
1092
+ };
1093
+
1094
+ export type MtwCreateServiceProviderInput = {
1095
+ contactInfo?: InputMaybe<Scalars['JSON']['input']>;
1096
+ description?: InputMaybe<Scalars['String']['input']>;
1097
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
1098
+ isVerified?: InputMaybe<Scalars['Boolean']['input']>;
1099
+ name: Scalars['String']['input'];
1100
+ rating?: InputMaybe<Scalars['Float']['input']>;
1101
+ serviceAreas?: InputMaybe<Array<Scalars['String']['input']>>;
1102
+ services?: InputMaybe<Array<Scalars['String']['input']>>;
1103
+ type: MtwServiceProviderType;
1104
+ };
1105
+
1025
1106
  export type MtwCustomer = {
1026
1107
  __typename?: 'MtwCustomer';
1027
1108
  address?: Maybe<Scalars['JSON']['output']>;
@@ -1366,6 +1447,7 @@ export type MtwFleetAlertSubjectType =
1366
1447
  export type MtwFleetAlertType =
1367
1448
  | 'LICENSE_EXPIRED'
1368
1449
  | 'LICENSE_EXPIRING'
1450
+ | 'LICENSE_UNKNOWN'
1369
1451
  | 'MAINTENANCE_DUE_SOON'
1370
1452
  | 'MAINTENANCE_OVERDUE';
1371
1453
 
@@ -1613,6 +1695,276 @@ export type MtwFreightCategory =
1613
1695
  | 'PRE_CARRIAGE'
1614
1696
  | 'TAX_ESTIMATE';
1615
1697
 
1698
+ export type MtwFreightCommercialCapture = {
1699
+ __typename?: 'MtwFreightCommercialCapture';
1700
+ cargo: MtwFreightCommercialCargoFact;
1701
+ carrier: MtwFreightCommercialCarrierFact;
1702
+ destination: MtwFreightCommercialLocationFact;
1703
+ equipment: MtwFreightCommercialEquipmentFact;
1704
+ origin: MtwFreightCommercialLocationFact;
1705
+ ownerLegs: Array<MtwFreightCommercialOwnerLeg>;
1706
+ ownerShipment: MtwFreightCommercialShipment;
1707
+ schemaVersion: Scalars['Int']['output'];
1708
+ selectedLegs: Array<MtwFreightCommercialLegPin>;
1709
+ service: MtwFreightCommercialServiceFact;
1710
+ volume: MtwFreightCommercialVolumeFact;
1711
+ weight: MtwFreightCommercialWeightFact;
1712
+ };
1713
+
1714
+ export type MtwFreightCommercialCaptureInput = {
1715
+ cargo: MtwFreightCommercialCargoFactInput;
1716
+ carrier: MtwFreightCommercialCarrierFactInput;
1717
+ destination: MtwFreightCommercialLocationFactInput;
1718
+ equipment: MtwFreightCommercialEquipmentFactInput;
1719
+ origin: MtwFreightCommercialLocationFactInput;
1720
+ schemaVersion: Scalars['Int']['input'];
1721
+ selectedLegs: Array<MtwFreightCommercialLegPinInput>;
1722
+ service: MtwFreightCommercialServiceFactInput;
1723
+ volume: MtwFreightCommercialVolumeFactInput;
1724
+ weight: MtwFreightCommercialWeightFactInput;
1725
+ };
1726
+
1727
+ export type MtwFreightCommercialCargo = {
1728
+ __typename?: 'MtwFreightCommercialCargo';
1729
+ classificationLabel: Scalars['String']['output'];
1730
+ description: Scalars['String']['output'];
1731
+ };
1732
+
1733
+ export type MtwFreightCommercialCargoFact = {
1734
+ __typename?: 'MtwFreightCommercialCargoFact';
1735
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1736
+ reason?: Maybe<Scalars['String']['output']>;
1737
+ status: MtwFreightCommercialStatus;
1738
+ value?: Maybe<MtwFreightCommercialCargo>;
1739
+ };
1740
+
1741
+ export type MtwFreightCommercialCargoFactInput = {
1742
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1743
+ reason?: InputMaybe<Scalars['String']['input']>;
1744
+ status: MtwFreightCommercialStatus;
1745
+ value?: InputMaybe<MtwFreightCommercialCargoInput>;
1746
+ };
1747
+
1748
+ export type MtwFreightCommercialCargoInput = {
1749
+ classificationLabel: Scalars['String']['input'];
1750
+ description: Scalars['String']['input'];
1751
+ };
1752
+
1753
+ export type MtwFreightCommercialCarrier = {
1754
+ __typename?: 'MtwFreightCommercialCarrier';
1755
+ label: Scalars['String']['output'];
1756
+ reference: Scalars['String']['output'];
1757
+ };
1758
+
1759
+ export type MtwFreightCommercialCarrierFact = {
1760
+ __typename?: 'MtwFreightCommercialCarrierFact';
1761
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1762
+ reason?: Maybe<Scalars['String']['output']>;
1763
+ status: MtwFreightCommercialStatus;
1764
+ value?: Maybe<MtwFreightCommercialCarrier>;
1765
+ };
1766
+
1767
+ export type MtwFreightCommercialCarrierFactInput = {
1768
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1769
+ reason?: InputMaybe<Scalars['String']['input']>;
1770
+ status: MtwFreightCommercialStatus;
1771
+ value?: InputMaybe<MtwFreightCommercialCarrierInput>;
1772
+ };
1773
+
1774
+ export type MtwFreightCommercialCarrierInput = {
1775
+ label: Scalars['String']['input'];
1776
+ reference: Scalars['String']['input'];
1777
+ };
1778
+
1779
+ export type MtwFreightCommercialEquipment = {
1780
+ __typename?: 'MtwFreightCommercialEquipment';
1781
+ count: Scalars['Int']['output'];
1782
+ typeLabel: Scalars['String']['output'];
1783
+ };
1784
+
1785
+ export type MtwFreightCommercialEquipmentFact = {
1786
+ __typename?: 'MtwFreightCommercialEquipmentFact';
1787
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1788
+ reason?: Maybe<Scalars['String']['output']>;
1789
+ status: MtwFreightCommercialStatus;
1790
+ value?: Maybe<MtwFreightCommercialEquipment>;
1791
+ };
1792
+
1793
+ export type MtwFreightCommercialEquipmentFactInput = {
1794
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1795
+ reason?: InputMaybe<Scalars['String']['input']>;
1796
+ status: MtwFreightCommercialStatus;
1797
+ value?: InputMaybe<MtwFreightCommercialEquipmentInput>;
1798
+ };
1799
+
1800
+ export type MtwFreightCommercialEquipmentInput = {
1801
+ count: Scalars['Int']['input'];
1802
+ typeLabel: Scalars['String']['input'];
1803
+ };
1804
+
1805
+ export type MtwFreightCommercialLegPin = {
1806
+ __typename?: 'MtwFreightCommercialLegPin';
1807
+ expectedUpdatedAt: Scalars['DateTime']['output'];
1808
+ id: Scalars['ID']['output'];
1809
+ };
1810
+
1811
+ export type MtwFreightCommercialLegPinInput = {
1812
+ expectedUpdatedAt: Scalars['DateTime']['input'];
1813
+ id: Scalars['ID']['input'];
1814
+ };
1815
+
1816
+ export type MtwFreightCommercialLink = {
1817
+ __typename?: 'MtwFreightCommercialLink';
1818
+ fileId: Scalars['ID']['output'];
1819
+ versionId: Scalars['ID']['output'];
1820
+ };
1821
+
1822
+ export type MtwFreightCommercialLinkInput = {
1823
+ fileId: Scalars['ID']['input'];
1824
+ versionId: Scalars['ID']['input'];
1825
+ };
1826
+
1827
+ export type MtwFreightCommercialLocation = {
1828
+ __typename?: 'MtwFreightCommercialLocation';
1829
+ jurisdictionLabel?: Maybe<Scalars['String']['output']>;
1830
+ kind: MtwFreightLocationKind;
1831
+ label: Scalars['String']['output'];
1832
+ };
1833
+
1834
+ export type MtwFreightCommercialLocationFact = {
1835
+ __typename?: 'MtwFreightCommercialLocationFact';
1836
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1837
+ reason?: Maybe<Scalars['String']['output']>;
1838
+ status: MtwFreightCommercialStatus;
1839
+ value?: Maybe<MtwFreightCommercialLocation>;
1840
+ };
1841
+
1842
+ export type MtwFreightCommercialLocationFactInput = {
1843
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1844
+ reason?: InputMaybe<Scalars['String']['input']>;
1845
+ status: MtwFreightCommercialStatus;
1846
+ value?: InputMaybe<MtwFreightCommercialLocationInput>;
1847
+ };
1848
+
1849
+ export type MtwFreightCommercialLocationInput = {
1850
+ jurisdictionLabel?: InputMaybe<Scalars['String']['input']>;
1851
+ kind: MtwFreightLocationKind;
1852
+ label: Scalars['String']['input'];
1853
+ };
1854
+
1855
+ export type MtwFreightCommercialOwnerLeg = {
1856
+ __typename?: 'MtwFreightCommercialOwnerLeg';
1857
+ carrierId?: Maybe<Scalars['ID']['output']>;
1858
+ carrierName?: Maybe<Scalars['String']['output']>;
1859
+ containerCount?: Maybe<Scalars['Int']['output']>;
1860
+ containerType?: Maybe<OceanContainerType>;
1861
+ id: Scalars['ID']['output'];
1862
+ legNumber: Scalars['Int']['output'];
1863
+ mode: TransportMode;
1864
+ updatedAt: Scalars['DateTime']['output'];
1865
+ volumeCbm?: Maybe<Scalars['Float']['output']>;
1866
+ weightKg?: Maybe<Scalars['Float']['output']>;
1867
+ };
1868
+
1869
+ export type MtwFreightCommercialProvenance = {
1870
+ __typename?: 'MtwFreightCommercialProvenance';
1871
+ evidenceLinks: Array<MtwFreightCommercialLink>;
1872
+ observedAt?: Maybe<Scalars['DateTime']['output']>;
1873
+ sourceReference: Scalars['String']['output'];
1874
+ sourceRevision: Scalars['String']['output'];
1875
+ };
1876
+
1877
+ export type MtwFreightCommercialProvenanceInput = {
1878
+ evidenceLinks: Array<MtwFreightCommercialLinkInput>;
1879
+ observedAt?: InputMaybe<Scalars['DateTime']['input']>;
1880
+ sourceReference: Scalars['String']['input'];
1881
+ sourceRevision: Scalars['String']['input'];
1882
+ };
1883
+
1884
+ export type MtwFreightCommercialServiceFact = {
1885
+ __typename?: 'MtwFreightCommercialServiceFact';
1886
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1887
+ reason?: Maybe<Scalars['String']['output']>;
1888
+ status: MtwFreightCommercialStatus;
1889
+ value?: Maybe<Scalars['String']['output']>;
1890
+ };
1891
+
1892
+ export type MtwFreightCommercialServiceFactInput = {
1893
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1894
+ reason?: InputMaybe<Scalars['String']['input']>;
1895
+ status: MtwFreightCommercialStatus;
1896
+ value?: InputMaybe<Scalars['String']['input']>;
1897
+ };
1898
+
1899
+ export type MtwFreightCommercialShipment = {
1900
+ __typename?: 'MtwFreightCommercialShipment';
1901
+ primaryMode: TransportMode;
1902
+ shipmentId: Scalars['ID']['output'];
1903
+ updatedAt: Scalars['DateTime']['output'];
1904
+ };
1905
+
1906
+ /** Reported commercial context only; no quote acceptance or completeness authority. */
1907
+ export type MtwFreightCommercialStatus =
1908
+ | 'NOT_APPLICABLE'
1909
+ | 'SOURCED'
1910
+ | 'UNKNOWN';
1911
+
1912
+ export type MtwFreightCommercialVolume = {
1913
+ __typename?: 'MtwFreightCommercialVolume';
1914
+ amount: Scalars['String']['output'];
1915
+ unit: MtwFreightVolumeUnit;
1916
+ zeroReason?: Maybe<Scalars['String']['output']>;
1917
+ };
1918
+
1919
+ export type MtwFreightCommercialVolumeFact = {
1920
+ __typename?: 'MtwFreightCommercialVolumeFact';
1921
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1922
+ reason?: Maybe<Scalars['String']['output']>;
1923
+ status: MtwFreightCommercialStatus;
1924
+ value?: Maybe<MtwFreightCommercialVolume>;
1925
+ };
1926
+
1927
+ export type MtwFreightCommercialVolumeFactInput = {
1928
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1929
+ reason?: InputMaybe<Scalars['String']['input']>;
1930
+ status: MtwFreightCommercialStatus;
1931
+ value?: InputMaybe<MtwFreightCommercialVolumeInput>;
1932
+ };
1933
+
1934
+ export type MtwFreightCommercialVolumeInput = {
1935
+ amount: Scalars['String']['input'];
1936
+ unit: MtwFreightVolumeUnit;
1937
+ zeroReason?: InputMaybe<Scalars['String']['input']>;
1938
+ };
1939
+
1940
+ export type MtwFreightCommercialWeight = {
1941
+ __typename?: 'MtwFreightCommercialWeight';
1942
+ amount: Scalars['String']['output'];
1943
+ unit: MtwFreightWeightUnit;
1944
+ zeroReason?: Maybe<Scalars['String']['output']>;
1945
+ };
1946
+
1947
+ export type MtwFreightCommercialWeightFact = {
1948
+ __typename?: 'MtwFreightCommercialWeightFact';
1949
+ provenance?: Maybe<MtwFreightCommercialProvenance>;
1950
+ reason?: Maybe<Scalars['String']['output']>;
1951
+ status: MtwFreightCommercialStatus;
1952
+ value?: Maybe<MtwFreightCommercialWeight>;
1953
+ };
1954
+
1955
+ export type MtwFreightCommercialWeightFactInput = {
1956
+ provenance?: InputMaybe<MtwFreightCommercialProvenanceInput>;
1957
+ reason?: InputMaybe<Scalars['String']['input']>;
1958
+ status: MtwFreightCommercialStatus;
1959
+ value?: InputMaybe<MtwFreightCommercialWeightInput>;
1960
+ };
1961
+
1962
+ export type MtwFreightCommercialWeightInput = {
1963
+ amount: Scalars['String']['input'];
1964
+ unit: MtwFreightWeightUnit;
1965
+ zeroReason?: InputMaybe<Scalars['String']['input']>;
1966
+ };
1967
+
1616
1968
  /** A declared currency/scale convention, not automatic ISO verification. */
1617
1969
  export type MtwFreightCurrency = {
1618
1970
  __typename?: 'MtwFreightCurrency';
@@ -1644,6 +1996,7 @@ export type MtwFreightEstimatePage = {
1644
1996
  export type MtwFreightEstimateVersion = {
1645
1997
  __typename?: 'MtwFreightEstimateVersion';
1646
1998
  actorProvenance: Scalars['String']['output'];
1999
+ commercialCapture?: Maybe<MtwFreightCommercialCapture>;
1647
2000
  createdBy: Scalars['ID']['output'];
1648
2001
  estimateReference: Scalars['String']['output'];
1649
2002
  evidence: Array<MtwContainerEvidence>;
@@ -1719,6 +2072,193 @@ export type MtwFreightFxInput = {
1719
2072
  toCurrency: MtwFreightCurrencyInput;
1720
2073
  };
1721
2074
 
2075
+ export type MtwFreightInvoiceAcceptance =
2076
+ | 'NOT_ESTABLISHED';
2077
+
2078
+ export type MtwFreightInvoiceBlocker =
2079
+ | 'EVIDENCE_REQUIRED'
2080
+ | 'INVOICE_REFERENCE_UNKNOWN'
2081
+ | 'SHIPMENT_NOT_LIVE'
2082
+ | 'SUPPLIER_UNKNOWN';
2083
+
2084
+ export type MtwFreightInvoiceComparableSubtotal = {
2085
+ __typename?: 'MtwFreightInvoiceComparableSubtotal';
2086
+ currency: MtwFreightCurrency;
2087
+ deltaMinor: Scalars['String']['output'];
2088
+ estimateMinor: Scalars['String']['output'];
2089
+ invoiceLineIds: Array<Scalars['ID']['output']>;
2090
+ invoiceMinor: Scalars['String']['output'];
2091
+ payerReference: Scalars['String']['output'];
2092
+ };
2093
+
2094
+ export type MtwFreightInvoiceComparison = {
2095
+ __typename?: 'MtwFreightInvoiceComparison';
2096
+ actorProvenance: Scalars['String']['output'];
2097
+ correctionReason?: Maybe<Scalars['String']['output']>;
2098
+ createdBy: Scalars['ID']['output'];
2099
+ estimate: MtwFreightInvoiceEstimatePin;
2100
+ estimateDeclaredSubtotals: Array<MtwFreightSubtotal>;
2101
+ evidence: Array<MtwContainerEvidence>;
2102
+ facts: MtwFreightInvoiceFacts;
2103
+ id: Scalars['ID']['output'];
2104
+ idempotencyKey: Scalars['String']['output'];
2105
+ invoiceDeclaredSubtotals: Array<MtwFreightSubtotal>;
2106
+ invoiceIdentityId: Scalars['ID']['output'];
2107
+ methodVersion: Scalars['Int']['output'];
2108
+ onBehalfOf?: Maybe<Scalars['ID']['output']>;
2109
+ outcome: MtwFreightInvoiceOutcome;
2110
+ previousComparisonId?: Maybe<Scalars['ID']['output']>;
2111
+ recordedAt: Scalars['DateTime']['output'];
2112
+ requestFingerprint: Scalars['String']['output'];
2113
+ revision: Scalars['Int']['output'];
2114
+ shipmentId: Scalars['ID']['output'];
2115
+ };
2116
+
2117
+ export type MtwFreightInvoiceComparisonPage = {
2118
+ __typename?: 'MtwFreightInvoiceComparisonPage';
2119
+ hasMore: Scalars['Boolean']['output'];
2120
+ items: Array<MtwFreightInvoiceComparison>;
2121
+ limit: Scalars['Int']['output'];
2122
+ nextOffset?: Maybe<Scalars['Int']['output']>;
2123
+ offset: Scalars['Int']['output'];
2124
+ total: Scalars['Int']['output'];
2125
+ };
2126
+
2127
+ export type MtwFreightInvoiceEstimatePin = {
2128
+ __typename?: 'MtwFreightInvoiceEstimatePin';
2129
+ acceptance: MtwFreightInvoiceAcceptance;
2130
+ estimateReference: Scalars['String']['output'];
2131
+ id: Scalars['ID']['output'];
2132
+ kind: MtwFreightKind;
2133
+ quotedAt?: Maybe<Scalars['DateTime']['output']>;
2134
+ sourceReference: Scalars['String']['output'];
2135
+ sourceRevision: Scalars['String']['output'];
2136
+ validFrom?: Maybe<Scalars['DateTime']['output']>;
2137
+ validUntil?: Maybe<Scalars['DateTime']['output']>;
2138
+ version: Scalars['Int']['output'];
2139
+ };
2140
+
2141
+ export type MtwFreightInvoiceFacts = {
2142
+ __typename?: 'MtwFreightInvoiceFacts';
2143
+ currency: MtwFreightCurrency;
2144
+ invoiceDate?: Maybe<Scalars['String']['output']>;
2145
+ invoiceReference?: Maybe<Scalars['String']['output']>;
2146
+ rows: Array<MtwFreightInvoiceRow>;
2147
+ schemaVersion: Scalars['Int']['output'];
2148
+ sourceReference: Scalars['String']['output'];
2149
+ sourceRevision: Scalars['String']['output'];
2150
+ supplierLabel?: Maybe<Scalars['String']['output']>;
2151
+ supplierReference?: Maybe<Scalars['String']['output']>;
2152
+ };
2153
+
2154
+ export type MtwFreightInvoiceFactsInput = {
2155
+ currency: MtwFreightCurrencyInput;
2156
+ /** An exact source date; unknown remains null. */
2157
+ invoiceDate?: InputMaybe<Scalars['String']['input']>;
2158
+ invoiceReference?: InputMaybe<Scalars['String']['input']>;
2159
+ rows: Array<MtwFreightInvoiceRowInput>;
2160
+ schemaVersion: Scalars['Int']['input'];
2161
+ sourceReference: Scalars['String']['input'];
2162
+ sourceRevision: Scalars['String']['input'];
2163
+ supplierLabel?: InputMaybe<Scalars['String']['input']>;
2164
+ supplierReference?: InputMaybe<Scalars['String']['input']>;
2165
+ };
2166
+
2167
+ export type MtwFreightInvoiceFlag =
2168
+ | 'AMOUNT_CHANGED'
2169
+ | 'CURRENCY_CHANGED'
2170
+ | 'DUPLICATE_MATCH'
2171
+ | 'EXCLUDED_CHARGE_APPEARED'
2172
+ | 'MATCHED'
2173
+ | 'MISSING_EXPECTED_LINE'
2174
+ | 'PAYER_CHANGED'
2175
+ | 'QUANTITY_CHANGED'
2176
+ | 'RATE_CHANGED'
2177
+ | 'UNKNOWN_COMPARISON'
2178
+ | 'UNMATCHED_INVOICE_LINE';
2179
+
2180
+ export type MtwFreightInvoiceOutcome = {
2181
+ __typename?: 'MtwFreightInvoiceOutcome';
2182
+ /** Only the explicit recorded comparison coverage, never all supplier charges or liability. */
2183
+ allLinesMatched: Scalars['Boolean']['output'];
2184
+ comparableSubtotals: Array<MtwFreightInvoiceComparableSubtotal>;
2185
+ flags: Array<MtwFreightInvoiceFlag>;
2186
+ missingExpectedLineIds: Array<Scalars['ID']['output']>;
2187
+ rows: Array<MtwFreightInvoiceRowComparison>;
2188
+ unknownExpectedCoverage: Array<MtwFreightInvoiceUnknownCoverage>;
2189
+ };
2190
+
2191
+ export type MtwFreightInvoicePreview = {
2192
+ __typename?: 'MtwFreightInvoicePreview';
2193
+ blockers: Array<MtwFreightInvoiceBlocker>;
2194
+ estimate: MtwFreightInvoiceEstimatePin;
2195
+ estimateDeclaredSubtotals: Array<MtwFreightSubtotal>;
2196
+ facts: MtwFreightInvoiceFacts;
2197
+ invoiceDeclaredSubtotals: Array<MtwFreightSubtotal>;
2198
+ methodVersion: Scalars['Int']['output'];
2199
+ outcome: MtwFreightInvoiceOutcome;
2200
+ recordable: Scalars['Boolean']['output'];
2201
+ };
2202
+
2203
+ export type MtwFreightInvoiceReason =
2204
+ | 'INCLUDED_CHILD_BILLED_SEPARATELY'
2205
+ | 'MISSING_AMOUNT'
2206
+ | 'MISSING_PAYER'
2207
+ | 'MISSING_QUANTITY'
2208
+ | 'MISSING_RATE'
2209
+ | 'MISSING_UNIT'
2210
+ | 'SCALE_MISMATCH'
2211
+ | 'UNIT_MISMATCH'
2212
+ | 'UNKNOWN_BASIS'
2213
+ | 'UNKNOWN_DISPOSITION'
2214
+ | 'UNKNOWN_EXPECTED_CHARGE_COVERAGE';
2215
+
2216
+ export type MtwFreightInvoiceRow = {
2217
+ __typename?: 'MtwFreightInvoiceRow';
2218
+ amountMinor?: Maybe<Scalars['String']['output']>;
2219
+ currency: MtwFreightCurrency;
2220
+ description: Scalars['String']['output'];
2221
+ estimateLineId?: Maybe<Scalars['ID']['output']>;
2222
+ id: Scalars['ID']['output'];
2223
+ payerLabel?: Maybe<Scalars['String']['output']>;
2224
+ payerReference?: Maybe<Scalars['String']['output']>;
2225
+ quantity?: Maybe<Scalars['String']['output']>;
2226
+ unit?: Maybe<Scalars['String']['output']>;
2227
+ unitRateMajor?: Maybe<Scalars['String']['output']>;
2228
+ zeroReason?: Maybe<Scalars['String']['output']>;
2229
+ };
2230
+
2231
+ export type MtwFreightInvoiceRowComparison = {
2232
+ __typename?: 'MtwFreightInvoiceRowComparison';
2233
+ deltaMinor?: Maybe<Scalars['String']['output']>;
2234
+ estimateLineId?: Maybe<Scalars['ID']['output']>;
2235
+ flags: Array<MtwFreightInvoiceFlag>;
2236
+ invoiceLineId: Scalars['ID']['output'];
2237
+ reasons: Array<MtwFreightInvoiceReason>;
2238
+ };
2239
+
2240
+ /** Manual reported invoice facts. This comparison does not establish liability or approve payment. */
2241
+ export type MtwFreightInvoiceRowInput = {
2242
+ amountMinor?: InputMaybe<Scalars['String']['input']>;
2243
+ currency: MtwFreightCurrencyInput;
2244
+ description: Scalars['String']['input'];
2245
+ estimateLineId?: InputMaybe<Scalars['ID']['input']>;
2246
+ id: Scalars['ID']['input'];
2247
+ payerLabel?: InputMaybe<Scalars['String']['input']>;
2248
+ payerReference?: InputMaybe<Scalars['String']['input']>;
2249
+ quantity?: InputMaybe<Scalars['String']['input']>;
2250
+ unit?: InputMaybe<Scalars['String']['input']>;
2251
+ unitRateMajor?: InputMaybe<Scalars['String']['input']>;
2252
+ zeroReason?: InputMaybe<Scalars['String']['input']>;
2253
+ };
2254
+
2255
+ export type MtwFreightInvoiceUnknownCoverage = {
2256
+ __typename?: 'MtwFreightInvoiceUnknownCoverage';
2257
+ estimateLineId: Scalars['ID']['output'];
2258
+ flag: MtwFreightInvoiceFlag;
2259
+ reason: MtwFreightInvoiceReason;
2260
+ };
2261
+
1722
2262
  export type MtwFreightKind =
1723
2263
  | 'ESTIMATE'
1724
2264
  | 'QUOTE';
@@ -1770,6 +2310,13 @@ export type MtwFreightLineTotal = {
1770
2310
  roundedToZero: Scalars['Boolean']['output'];
1771
2311
  };
1772
2312
 
2313
+ export type MtwFreightLocationKind =
2314
+ | 'ADDRESS_LABEL'
2315
+ | 'CUSTOM_LABEL'
2316
+ | 'PORT_LABEL'
2317
+ | 'POSTCODE_LABEL'
2318
+ | 'TERMINAL_LABEL';
2319
+
1773
2320
  /** Completeness applies only to the recorded required-charge declarations, not all possible charges. */
1774
2321
  export type MtwFreightPreview = {
1775
2322
  __typename?: 'MtwFreightPreview';
@@ -1845,6 +2392,57 @@ export type MtwFreightSubtotal = {
1845
2392
  totalAmountMinor?: Maybe<Scalars['String']['output']>;
1846
2393
  };
1847
2394
 
2395
+ export type MtwFreightVolumeUnit =
2396
+ | 'FT3'
2397
+ | 'M3';
2398
+
2399
+ export type MtwFreightWeightUnit =
2400
+ | 'KG'
2401
+ | 'LB'
2402
+ | 'TONNE';
2403
+
2404
+ export type MtwFuelDistanceObservation = {
2405
+ __typename?: 'MtwFuelDistanceObservation';
2406
+ basis: MtwUtilizationDistanceBasis;
2407
+ coverage: MtwTripUtilizationCoverage;
2408
+ intervalFrom: Scalars['String']['output'];
2409
+ intervalUntil: Scalars['String']['output'];
2410
+ metres?: Maybe<Scalars['Int']['output']>;
2411
+ sourceReference?: Maybe<Scalars['String']['output']>;
2412
+ sourceRevision?: Maybe<Scalars['String']['output']>;
2413
+ };
2414
+
2415
+ export type MtwFuelDistanceObservationInput = {
2416
+ basis: MtwUtilizationDistanceBasis;
2417
+ coverage: MtwTripUtilizationCoverage;
2418
+ intervalFrom: Scalars['String']['input'];
2419
+ intervalUntil: Scalars['String']['input'];
2420
+ metres?: InputMaybe<Scalars['Int']['input']>;
2421
+ sourceReference?: InputMaybe<Scalars['String']['input']>;
2422
+ sourceRevision?: InputMaybe<Scalars['String']['input']>;
2423
+ };
2424
+
2425
+ export type MtwFuelVolumeObservation = {
2426
+ __typename?: 'MtwFuelVolumeObservation';
2427
+ basis: MtwConsumedFuelBasis;
2428
+ coverage: MtwTripUtilizationCoverage;
2429
+ intervalFrom: Scalars['String']['output'];
2430
+ intervalUntil: Scalars['String']['output'];
2431
+ millilitres?: Maybe<Scalars['Int']['output']>;
2432
+ sourceReference?: Maybe<Scalars['String']['output']>;
2433
+ sourceRevision?: Maybe<Scalars['String']['output']>;
2434
+ };
2435
+
2436
+ export type MtwFuelVolumeObservationInput = {
2437
+ basis: MtwConsumedFuelBasis;
2438
+ coverage: MtwTripUtilizationCoverage;
2439
+ intervalFrom: Scalars['String']['input'];
2440
+ intervalUntil: Scalars['String']['input'];
2441
+ millilitres?: InputMaybe<Scalars['Int']['input']>;
2442
+ sourceReference?: InputMaybe<Scalars['String']['input']>;
2443
+ sourceRevision?: InputMaybe<Scalars['String']['input']>;
2444
+ };
2445
+
1848
2446
  /** A recorded manual issuer review; workspace privileges do not establish professional qualifications. */
1849
2447
  export type MtwInspectorQualification = {
1850
2448
  __typename?: 'MtwInspectorQualification';
@@ -2007,20 +2605,215 @@ export type MtwInventoryTransferResult = {
2007
2605
  source: MtwInventoryItem;
2008
2606
  };
2009
2607
 
2010
- /** An estimate from the caller's own inputs — not a quote from anyone. */
2011
- export type MtwOwnFleetEstimate = {
2012
- __typename?: 'MtwOwnFleetEstimate';
2013
- /** fixedCost + distanceKm * costPerKm. */
2014
- cost: Scalars['Float']['output'];
2015
- costPerKm: Scalars['Float']['output'];
2016
- currency: Scalars['String']['output'];
2017
- distanceKm: Scalars['Float']['output'];
2018
- fixedCost: Scalars['Float']['output'];
2019
- isCheaperThanCouriers: Scalars['Boolean']['output'];
2020
- /** Cheapest courier price minus this estimate. Positive means running your own vehicle is cheaper. Null when no courier quoted. */
2021
- savingsVsCheapestCourier?: Maybe<Scalars['Float']['output']>;
2608
+ export type MtwMarketplaceStats = {
2609
+ __typename?: 'MtwMarketplaceStats';
2610
+ activeProviders: Scalars['Int']['output'];
2611
+ /** Average provider rating, or null when no provider has been rated. */
2612
+ avgRating?: Maybe<Scalars['Float']['output']>;
2613
+ offerings: Scalars['Int']['output'];
2614
+ providers: Scalars['Int']['output'];
2615
+ verifiedProviders: Scalars['Int']['output'];
2616
+ };
2617
+
2618
+ export type MtwMoveReviewSource = {
2619
+ __typename?: 'MtwMoveReviewSource';
2620
+ reference: Scalars['String']['output'];
2621
+ revision: Scalars['String']['output'];
2622
+ };
2623
+
2624
+ export type MtwMoveReviewSourceInput = {
2625
+ reference: Scalars['String']['input'];
2626
+ revision: Scalars['String']['input'];
2627
+ };
2628
+
2629
+ /** An estimate from the caller's own inputs — not a quote from anyone. */
2630
+ export type MtwOwnFleetEstimate = {
2631
+ __typename?: 'MtwOwnFleetEstimate';
2632
+ /** fixedCost + distanceKm * costPerKm. */
2633
+ cost: Scalars['Float']['output'];
2634
+ costPerKm: Scalars['Float']['output'];
2635
+ currency: Scalars['String']['output'];
2636
+ distanceKm: Scalars['Float']['output'];
2637
+ fixedCost: Scalars['Float']['output'];
2638
+ isCheaperThanCouriers: Scalars['Boolean']['output'];
2639
+ /** Cheapest courier price minus this estimate. Positive means running your own vehicle is cheaper. Null when no courier quoted. */
2640
+ savingsVsCheapestCourier?: Maybe<Scalars['Float']['output']>;
2641
+ };
2642
+
2643
+ export type MtwOwnedEpodShipmentStatus = {
2644
+ __typename?: 'MtwOwnedEpodShipmentStatus';
2645
+ id: Scalars['ID']['output'];
2646
+ status: ShipmentStatus;
2647
+ statusRevision: Scalars['Int']['output'];
2648
+ };
2649
+
2650
+ export type MtwPalletAdditionalPackingInput = {
2651
+ massG?: InputMaybe<Scalars['String']['input']>;
2652
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2653
+ };
2654
+
2655
+ export type MtwPalletBaseInput = {
2656
+ heightMm?: InputMaybe<Scalars['Int']['input']>;
2657
+ lengthMm?: InputMaybe<Scalars['Int']['input']>;
2658
+ maxPayloadMassG?: InputMaybe<Scalars['String']['input']>;
2659
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2660
+ tareMassG?: InputMaybe<Scalars['String']['input']>;
2661
+ widthMm?: InputMaybe<Scalars['Int']['input']>;
2662
+ };
2663
+
2664
+ export type MtwPalletBound = {
2665
+ __typename?: 'MtwPalletBound';
2666
+ reason: Scalars['String']['output'];
2667
+ status: MtwPalletBoundStatus;
2668
+ };
2669
+
2670
+ export type MtwPalletBoundStatus =
2671
+ | 'FAIL'
2672
+ | 'PASS'
2673
+ | 'UNKNOWN';
2674
+
2675
+ export type MtwPalletBounds = {
2676
+ __typename?: 'MtwPalletBounds';
2677
+ loadedPalletGrossMass: MtwPalletBound;
2678
+ palletFootprintWithinLoadEnvelope: MtwPalletBound;
2679
+ palletPayloadMass: MtwPalletBound;
2680
+ permittedUprightYaw: MtwPalletBound;
2681
+ placedContainment: MtwPalletBound;
2682
+ placedNonOverlap: MtwPalletBound;
2683
+ reportedSingleLayerHeight: MtwPalletBound;
2684
+ };
2685
+
2686
+ export type MtwPalletClassification =
2687
+ | 'GEOMETRIC_PROPOSAL_ONLY';
2688
+
2689
+ export type MtwPalletClearanceInput = {
2690
+ betweenPackagesMm?: InputMaybe<Scalars['Int']['input']>;
2691
+ perimeterMm?: InputMaybe<Scalars['Int']['input']>;
2692
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2693
+ topMm?: InputMaybe<Scalars['Int']['input']>;
2694
+ };
2695
+
2696
+ /** Read-only supplied-measurement geometry; no persistence, stock change or release authority. */
2697
+ export type MtwPalletGeometryPreview = {
2698
+ __typename?: 'MtwPalletGeometryPreview';
2699
+ bounds: MtwPalletBounds;
2700
+ classification: MtwPalletClassification;
2701
+ layoutStatus: MtwPalletLayoutStatus;
2702
+ method: MtwPalletMethod;
2703
+ placedQuantity: Scalars['Int']['output'];
2704
+ placements: Array<MtwPalletPlacement>;
2705
+ requestedGrossMassG?: Maybe<Scalars['String']['output']>;
2706
+ requestedPayloadMassG?: Maybe<Scalars['String']['output']>;
2707
+ requestedQuantity: Scalars['Int']['output'];
2708
+ sources: MtwPalletSources;
2709
+ units: MtwPalletUnits;
2710
+ unplaced: Array<MtwPalletUnplaced>;
2711
+ unsupported: MtwPalletUnsupported;
2712
+ };
2713
+
2714
+ export type MtwPalletGeometryPreviewInput = {
2715
+ additionalPacking: MtwPalletAdditionalPackingInput;
2716
+ clearance: MtwPalletClearanceInput;
2717
+ loadEnvelope?: InputMaybe<MtwPalletLoadEnvelopeInput>;
2718
+ mode: MtwPalletMode;
2719
+ packages: Array<MtwPalletPackageInput>;
2720
+ pallet: MtwPalletBaseInput;
2721
+ units: MtwPalletUnits;
2722
+ };
2723
+
2724
+ export type MtwPalletLayoutStatus =
2725
+ | 'NO_LAYOUT_FOUND_BY_METHOD'
2726
+ | 'PLACED_BY_METHOD'
2727
+ | 'UNKNOWN';
2728
+
2729
+ export type MtwPalletLoadEnvelopeInput = {
2730
+ lengthMm?: InputMaybe<Scalars['Int']['input']>;
2731
+ maxGrossMassG?: InputMaybe<Scalars['String']['input']>;
2732
+ maxHeightMm?: InputMaybe<Scalars['Int']['input']>;
2733
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2734
+ widthMm?: InputMaybe<Scalars['Int']['input']>;
2735
+ };
2736
+
2737
+ export type MtwPalletMeasurementSource = {
2738
+ __typename?: 'MtwPalletMeasurementSource';
2739
+ reference: Scalars['String']['output'];
2740
+ version: Scalars['String']['output'];
2741
+ };
2742
+
2743
+ export type MtwPalletMeasurementSourceInput = {
2744
+ reference: Scalars['String']['input'];
2745
+ version: Scalars['String']['input'];
2746
+ };
2747
+
2748
+ export type MtwPalletMethod =
2749
+ | 'DETERMINISTIC_SINGLE_LAYER_SHELF_V1';
2750
+
2751
+ export type MtwPalletMode =
2752
+ | 'UPRIGHT_SINGLE_LAYER';
2753
+
2754
+ export type MtwPalletPackageInput = {
2755
+ allowedYawDegrees?: InputMaybe<Array<Scalars['Int']['input']>>;
2756
+ grossMassG?: InputMaybe<Scalars['String']['input']>;
2757
+ heightMm?: InputMaybe<Scalars['Int']['input']>;
2758
+ id: Scalars['ID']['input'];
2759
+ lengthMm?: InputMaybe<Scalars['Int']['input']>;
2760
+ quantity: Scalars['Int']['input'];
2761
+ source?: InputMaybe<MtwPalletMeasurementSourceInput>;
2762
+ upright?: InputMaybe<Scalars['Boolean']['input']>;
2763
+ widthMm?: InputMaybe<Scalars['Int']['input']>;
2764
+ };
2765
+
2766
+ export type MtwPalletPackageSource = {
2767
+ __typename?: 'MtwPalletPackageSource';
2768
+ packageId: Scalars['ID']['output'];
2769
+ source?: Maybe<MtwPalletMeasurementSource>;
2770
+ };
2771
+
2772
+ export type MtwPalletPlacement = {
2773
+ __typename?: 'MtwPalletPlacement';
2774
+ heightMm?: Maybe<Scalars['Int']['output']>;
2775
+ lengthMm: Scalars['Int']['output'];
2776
+ packageId: Scalars['ID']['output'];
2777
+ unit: Scalars['Int']['output'];
2778
+ widthMm: Scalars['Int']['output'];
2779
+ xMm: Scalars['Int']['output'];
2780
+ yMm: Scalars['Int']['output'];
2781
+ yawDegrees: Scalars['Int']['output'];
2782
+ zMm?: Maybe<Scalars['Int']['output']>;
2783
+ };
2784
+
2785
+ export type MtwPalletSources = {
2786
+ __typename?: 'MtwPalletSources';
2787
+ additionalPacking?: Maybe<MtwPalletMeasurementSource>;
2788
+ clearance?: Maybe<MtwPalletMeasurementSource>;
2789
+ loadEnvelope?: Maybe<MtwPalletMeasurementSource>;
2790
+ packages: Array<MtwPalletPackageSource>;
2791
+ pallet?: Maybe<MtwPalletMeasurementSource>;
2792
+ };
2793
+
2794
+ export type MtwPalletUnits =
2795
+ | 'MM_G';
2796
+
2797
+ export type MtwPalletUnplaced = {
2798
+ __typename?: 'MtwPalletUnplaced';
2799
+ packageId: Scalars['ID']['output'];
2800
+ quantity: Scalars['Int']['output'];
2801
+ };
2802
+
2803
+ export type MtwPalletUnsupported = {
2804
+ __typename?: 'MtwPalletUnsupported';
2805
+ additionalPackingGeometry: MtwPalletUnsupportedStatus;
2806
+ centreOfGravityAndStability: MtwPalletUnsupportedStatus;
2807
+ handling: MtwPalletUnsupportedStatus;
2808
+ loadingAndUnloadingPath: MtwPalletUnsupportedStatus;
2809
+ securing: MtwPalletUnsupportedStatus;
2810
+ segregationAndCargoCompatibility: MtwPalletUnsupportedStatus;
2811
+ supportAndFloorContactLoads: MtwPalletUnsupportedStatus;
2022
2812
  };
2023
2813
 
2814
+ export type MtwPalletUnsupportedStatus =
2815
+ | 'UNKNOWN';
2816
+
2024
2817
  export type MtwPickIntentLine = {
2025
2818
  __typename?: 'MtwPickIntentLine';
2026
2819
  applicableProfile?: Maybe<MtwPickIntentProfile>;
@@ -2085,6 +2878,62 @@ export type MtwPickPreparation = {
2085
2878
  source: MtwPickIntentLine;
2086
2879
  };
2087
2880
 
2881
+ /** Immutable human review only. It reserves no stock and confers no physical execution or qualification. */
2882
+ export type MtwPickReview = {
2883
+ __typename?: 'MtwPickReview';
2884
+ actions: Array<MtwPickReviewAction>;
2885
+ classification: Scalars['String']['output'];
2886
+ evidence: Array<MtwContainerEvidence>;
2887
+ handlingPolicy?: Maybe<MtwMoveReviewSource>;
2888
+ id: Scalars['ID']['output'];
2889
+ idempotencyKey: Scalars['String']['output'];
2890
+ intentHash: Scalars['String']['output'];
2891
+ kind: MtwPickReviewKind;
2892
+ note: Scalars['String']['output'];
2893
+ previousDecisionId?: Maybe<Scalars['ID']['output']>;
2894
+ quantityCeiling?: Maybe<Scalars['Int']['output']>;
2895
+ recordedAt: Scalars['DateTime']['output'];
2896
+ reviewerActorId: Scalars['ID']['output'];
2897
+ sop?: Maybe<MtwMoveReviewSource>;
2898
+ subjectActorId: Scalars['ID']['output'];
2899
+ taskId: Scalars['ID']['output'];
2900
+ validFrom?: Maybe<Scalars['DateTime']['output']>;
2901
+ validUntil?: Maybe<Scalars['DateTime']['output']>;
2902
+ version: Scalars['Int']['output'];
2903
+ };
2904
+
2905
+ export type MtwPickReviewAction =
2906
+ | 'RELEASE_STAGED_CUSTODY'
2907
+ | 'RELEASE_UNPICKED'
2908
+ | 'RESERVE'
2909
+ | 'SHORT_PICK'
2910
+ | 'STAGE';
2911
+
2912
+ export type MtwPickReviewKind =
2913
+ | 'APPROVE'
2914
+ | 'REJECT'
2915
+ | 'REVOKE';
2916
+
2917
+ export type MtwPickReviewPage = {
2918
+ __typename?: 'MtwPickReviewPage';
2919
+ evaluatedAt: Scalars['DateTime']['output'];
2920
+ hasMore: Scalars['Boolean']['output'];
2921
+ items: Array<MtwPickReview>;
2922
+ latestDecision?: Maybe<MtwPickReview>;
2923
+ limit: Scalars['Int']['output'];
2924
+ nextOffset?: Maybe<Scalars['Int']['output']>;
2925
+ offset: Scalars['Int']['output'];
2926
+ reviewState: MtwPickReviewState;
2927
+ total: Scalars['Int']['output'];
2928
+ };
2929
+
2930
+ export type MtwPickReviewState =
2931
+ | 'APPROVED_REVIEW_ONLY'
2932
+ | 'NOT_CURRENT'
2933
+ | 'REJECTED'
2934
+ | 'REVOKED'
2935
+ | 'UNREVIEWED';
2936
+
2088
2937
  /** Immutable reported planning intent. It reserves no stock and grants no execution authority. */
2089
2938
  export type MtwPickTask = {
2090
2939
  __typename?: 'MtwPickTask';
@@ -2583,6 +3432,69 @@ export type MtwRevenueMetrics = {
2583
3432
  totalRevenue: Scalars['Float']['output'];
2584
3433
  };
2585
3434
 
3435
+ /**
3436
+ * Deterministic delivery-risk forecast for a shipment, computed from its legs,
3437
+ * routes, tracking events, assigned vehicle and the carrier's recent history.
3438
+ */
3439
+ export type MtwRiskForecast = {
3440
+ __typename?: 'MtwRiskForecast';
3441
+ /** True when the promise is still in the future but predicted to be missed. */
3442
+ atRisk: Scalars['Boolean']['output'];
3443
+ /** True when the promised delivery has already passed without delivery. */
3444
+ breached: Scalars['Boolean']['output'];
3445
+ evaluatedAt: Scalars['DateTime']['output'];
3446
+ /** Forecasting method, e.g. DETERMINISTIC_V1. */
3447
+ method: Scalars['String']['output'];
3448
+ predictedDeliveryEarliest?: Maybe<Scalars['DateTime']['output']>;
3449
+ predictedDeliveryLatest?: Maybe<Scalars['DateTime']['output']>;
3450
+ predictedSlipMinutes: Scalars['Int']['output'];
3451
+ promisedDelivery?: Maybe<Scalars['DateTime']['output']>;
3452
+ recommendedAction: MtwRiskRecommendedAction;
3453
+ /** Name of the mutation that carries out the recommended action, if any. */
3454
+ recommendedMutation?: Maybe<Scalars['String']['output']>;
3455
+ riskLevel: MtwRiskLevel;
3456
+ riskScore: Scalars['Int']['output'];
3457
+ shipmentId: Scalars['ID']['output'];
3458
+ shipmentNumber: Scalars['String']['output'];
3459
+ signals: Array<MtwRiskSignal>;
3460
+ status: ShipmentStatus;
3461
+ };
3462
+
3463
+ export type MtwRiskLevel =
3464
+ | 'HIGH'
3465
+ | 'LOW'
3466
+ | 'MEDIUM'
3467
+ | 'NONE';
3468
+
3469
+ export type MtwRiskRecommendedAction =
3470
+ | 'MONITOR'
3471
+ | 'NONE'
3472
+ | 'REASSIGN_VEHICLE'
3473
+ | 'REPROMISE_DELIVERY'
3474
+ | 'REQUEST_TRACKING_UPDATE';
3475
+
3476
+ /**
3477
+ * One piece of evidence behind a risk forecast. `weight` is the number of risk
3478
+ * score points it contributed; `minutes` is the time behind plan (or without
3479
+ * tracking), `ratio` the carrier late-delivery rate.
3480
+ */
3481
+ export type MtwRiskSignal = {
3482
+ __typename?: 'MtwRiskSignal';
3483
+ code: MtwRiskSignalCode;
3484
+ minutes?: Maybe<Scalars['Int']['output']>;
3485
+ ratio?: Maybe<Scalars['Float']['output']>;
3486
+ weight: Scalars['Int']['output'];
3487
+ };
3488
+
3489
+ export type MtwRiskSignalCode =
3490
+ | 'CARRIER_LATE_HISTORY'
3491
+ | 'EXCESS_DWELL'
3492
+ | 'LEG_SLIP'
3493
+ | 'OPEN_LEG_OVERDUE'
3494
+ | 'ROUTE_DURATION_OVERRUN'
3495
+ | 'TRACKING_STALE'
3496
+ | 'VEHICLE_UNAVAILABLE';
3497
+
2586
3498
  export type MtwRoute = {
2587
3499
  __typename?: 'MtwRoute';
2588
3500
  actualDistance?: Maybe<Scalars['Float']['output']>;
@@ -2621,6 +3533,130 @@ export type MtwRouteStats = {
2621
3533
  totalDuration: Scalars['Float']['output'];
2622
3534
  };
2623
3535
 
3536
+ /** Whether the provider currently has capacity for an offering. */
3537
+ export type MtwServiceAvailability =
3538
+ | 'AVAILABLE'
3539
+ | 'LIMITED'
3540
+ | 'UNAVAILABLE';
3541
+
3542
+ /** A discoverable service a provider offers, with indicative price and availability. */
3543
+ export type MtwServiceOffering = {
3544
+ __typename?: 'MtwServiceOffering';
3545
+ availability: MtwServiceAvailability;
3546
+ category: MtwServiceOfferingCategory;
3547
+ createdAt: Scalars['DateTime']['output'];
3548
+ createdBy: Scalars['String']['output'];
3549
+ /** ISO 4217 currency code. */
3550
+ currency: Scalars['String']['output'];
3551
+ deletedAt?: Maybe<Scalars['DateTime']['output']>;
3552
+ description?: Maybe<Scalars['String']['output']>;
3553
+ id: Scalars['ID']['output'];
3554
+ isActive: Scalars['Boolean']['output'];
3555
+ name: Scalars['String']['output'];
3556
+ onBehalfOf?: Maybe<Scalars['String']['output']>;
3557
+ /** Indicative price in `currency`, per `pricingUnit`. Null when priced on request. */
3558
+ price?: Maybe<Scalars['Float']['output']>;
3559
+ /** What the price is charged per, for example "per km", "per pallet" or "per shipment". */
3560
+ pricingUnit?: Maybe<Scalars['String']['output']>;
3561
+ /** The provider offering this service. Resolves even if the provider was later deleted. */
3562
+ provider?: Maybe<MtwServiceProvider>;
3563
+ providerId: Scalars['ID']['output'];
3564
+ /** Typical door-to-door transit time in days. */
3565
+ transitDays?: Maybe<Scalars['Int']['output']>;
3566
+ updatedAt: Scalars['DateTime']['output'];
3567
+ updatedBy?: Maybe<Scalars['String']['output']>;
3568
+ workspaceId: Scalars['ID']['output'];
3569
+ };
3570
+
3571
+ /** What an offering provides. */
3572
+ export type MtwServiceOfferingCategory =
3573
+ | 'AIR_FREIGHT'
3574
+ | 'COLD_CHAIN'
3575
+ | 'CUSTOMS_CLEARANCE'
3576
+ | 'EXPRESS'
3577
+ | 'FULL_TRUCKLOAD'
3578
+ | 'LAST_MILE'
3579
+ | 'LESS_THAN_TRUCKLOAD'
3580
+ | 'OCEAN_FREIGHT'
3581
+ | 'OTHER'
3582
+ | 'RAIL_FREIGHT'
3583
+ | 'WAREHOUSING';
3584
+
3585
+ export type MtwServiceOfferingFilterInput = {
3586
+ availability?: InputMaybe<MtwServiceAvailability>;
3587
+ category?: InputMaybe<MtwServiceOfferingCategory>;
3588
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
3589
+ /** Only offerings at or below this price. */
3590
+ maxPrice?: InputMaybe<Scalars['Float']['input']>;
3591
+ providerId?: InputMaybe<Scalars['ID']['input']>;
3592
+ /** Case-insensitive match on name and description. */
3593
+ search?: InputMaybe<Scalars['String']['input']>;
3594
+ };
3595
+
3596
+ /**
3597
+ * A vetted service provider (carrier, 3PL, warehouse, specialist) in this workspace's marketplace
3598
+ * directory. A provider becomes a shipment's carrier through `assignShipmentServiceProvider`.
3599
+ */
3600
+ export type MtwServiceProvider = {
3601
+ __typename?: 'MtwServiceProvider';
3602
+ /** Free-form contact details (for example contactName, email, phone, website). */
3603
+ contactInfo?: Maybe<Scalars['JSON']['output']>;
3604
+ createdAt: Scalars['DateTime']['output'];
3605
+ createdBy: Scalars['String']['output'];
3606
+ deletedAt?: Maybe<Scalars['DateTime']['output']>;
3607
+ description?: Maybe<Scalars['String']['output']>;
3608
+ id: Scalars['ID']['output'];
3609
+ isActive: Scalars['Boolean']['output'];
3610
+ /** Set by the workspace once it has vetted the provider. */
3611
+ isVerified: Scalars['Boolean']['output'];
3612
+ name: Scalars['String']['output'];
3613
+ /** The provider's live (not deleted) offerings, newest first. */
3614
+ offerings: Array<MtwServiceOffering>;
3615
+ /** Number of live offerings. */
3616
+ offeringsCount: Scalars['Int']['output'];
3617
+ onBehalfOf?: Maybe<Scalars['String']['output']>;
3618
+ /** The workspace's own rating of this provider, 0 to 5. Null when not yet rated. */
3619
+ rating?: Maybe<Scalars['Float']['output']>;
3620
+ /** Regions, lanes or cities the provider covers. */
3621
+ serviceAreas: Array<Scalars['String']['output']>;
3622
+ /** Short service tags, for example "reefer" or "hazmat". */
3623
+ services: Array<Scalars['String']['output']>;
3624
+ type: MtwServiceProviderType;
3625
+ updatedAt: Scalars['DateTime']['output'];
3626
+ updatedBy?: Maybe<Scalars['String']['output']>;
3627
+ workspaceId: Scalars['ID']['output'];
3628
+ };
3629
+
3630
+
3631
+ /**
3632
+ * A vetted service provider (carrier, 3PL, warehouse, specialist) in this workspace's marketplace
3633
+ * directory. A provider becomes a shipment's carrier through `assignShipmentServiceProvider`.
3634
+ */
3635
+ export type MtwServiceProviderOfferingsArgs = {
3636
+ pagination?: InputMaybe<PaginationInput>;
3637
+ };
3638
+
3639
+ export type MtwServiceProviderFilterInput = {
3640
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
3641
+ isVerified?: InputMaybe<Scalars['Boolean']['input']>;
3642
+ /** Only providers with at least this rating. */
3643
+ minRating?: InputMaybe<Scalars['Float']['input']>;
3644
+ /** Case-insensitive match on name, description, services and service areas. */
3645
+ search?: InputMaybe<Scalars['String']['input']>;
3646
+ type?: InputMaybe<MtwServiceProviderType>;
3647
+ };
3648
+
3649
+ /** Kind of service provider in the workspace marketplace directory (BOFF-3988, MOV-UC-13). */
3650
+ export type MtwServiceProviderType =
3651
+ | 'CARRIER'
3652
+ | 'COURIER'
3653
+ | 'CUSTOMS_BROKER'
3654
+ | 'FREIGHT_FORWARDER'
3655
+ | 'LAST_MILE'
3656
+ | 'OTHER'
3657
+ | 'THIRD_PARTY_LOGISTICS'
3658
+ | 'WAREHOUSE';
3659
+
2624
3660
  export type MtwShipment = {
2625
3661
  __typename?: 'MtwShipment';
2626
3662
  actualDelivery?: Maybe<Scalars['DateTime']['output']>;
@@ -2633,17 +3669,30 @@ export type MtwShipment = {
2633
3669
  deletedAt?: Maybe<Scalars['DateTime']['output']>;
2634
3670
  deliveryJob?: Maybe<MtwDeliveryJob>;
2635
3671
  deliveryJobId?: Maybe<Scalars['ID']['output']>;
3672
+ designatedIntegrationId?: Maybe<Scalars['ID']['output']>;
2636
3673
  destination: Scalars['JSON']['output'];
2637
3674
  estimatedDelivery?: Maybe<Scalars['DateTime']['output']>;
2638
3675
  freightCurrency?: Maybe<Scalars['String']['output']>;
2639
3676
  id: Scalars['ID']['output'];
2640
3677
  isMultiModal: Scalars['Boolean']['output'];
2641
3678
  legs: Array<MtwShipmentLeg>;
3679
+ maxFutureSkewSeconds?: Maybe<Scalars['Int']['output']>;
3680
+ maxSourceAgeSeconds?: Maybe<Scalars['Int']['output']>;
2642
3681
  onBehalfOf: Scalars['String']['output'];
2643
3682
  origin: Scalars['JSON']['output'];
2644
3683
  primaryMode: TransportMode;
3684
+ /**
3685
+ * The marketplace provider this shipment's carrier points at, when `carrierId` references one.
3686
+ * Resolves even if the provider was later deleted, so historical shipments keep their carrier.
3687
+ */
3688
+ serviceProvider?: Maybe<MtwServiceProvider>;
2645
3689
  shipmentNumber: Scalars['String']['output'];
2646
3690
  status: ShipmentStatus;
3691
+ statusAuthority: ShipmentStatusAuthority;
3692
+ statusAuthorityEpoch: Scalars['Int']['output'];
3693
+ statusBasisEventId?: Maybe<Scalars['ID']['output']>;
3694
+ statusBasisSourceTime?: Maybe<Scalars['DateTime']['output']>;
3695
+ statusRevision: Scalars['Int']['output'];
2647
3696
  storeOrder?: Maybe<StoreOrder>;
2648
3697
  storeOrderId?: Maybe<Scalars['ID']['output']>;
2649
3698
  totalFreightCost?: Maybe<Scalars['Float']['output']>;
@@ -2705,6 +3754,27 @@ export type MtwShipmentLeg = {
2705
3754
  workspaceId: Scalars['ID']['output'];
2706
3755
  };
2707
3756
 
3757
+ export type MtwShipmentStatusDecision = {
3758
+ __typename?: 'MtwShipmentStatusDecision';
3759
+ authorityEpoch: Scalars['Int']['output'];
3760
+ configuredIntegrationId?: Maybe<Scalars['ID']['output']>;
3761
+ configuredMaxFutureSkewSeconds?: Maybe<Scalars['Int']['output']>;
3762
+ configuredMaxSourceAgeSeconds?: Maybe<Scalars['Int']['output']>;
3763
+ createdBy: Scalars['ID']['output'];
3764
+ heldReason?: Maybe<ShipmentStatusHeldReason>;
3765
+ id: Scalars['ID']['output'];
3766
+ observedRevision: Scalars['Int']['output'];
3767
+ origin: ShipmentStatusDecisionOrigin;
3768
+ outcome: ShipmentStatusDecisionOutcome;
3769
+ priorStatus: ShipmentStatus;
3770
+ proofId?: Maybe<Scalars['ID']['output']>;
3771
+ reason?: Maybe<Scalars['String']['output']>;
3772
+ recordedAt: Scalars['DateTime']['output'];
3773
+ resultRevision: Scalars['Int']['output'];
3774
+ resultStatus: ShipmentStatus;
3775
+ trackingEventId?: Maybe<Scalars['ID']['output']>;
3776
+ };
3777
+
2708
3778
  export type MtwShippingQuote = {
2709
3779
  __typename?: 'MtwShippingQuote';
2710
3780
  courierId: Scalars['String']['output'];
@@ -3051,14 +4121,53 @@ export type MtwStockObservationPage = {
3051
4121
  export type MtwStockObservationStatus =
3052
4122
  | 'UNRESOLVED';
3053
4123
 
4124
+ /**
4125
+ * A tracking alert. `alertType` is `DELAYED` once the promised delivery has
4126
+ * passed, or `AT_RISK` when the deterministic forecast predicts the promise will
4127
+ * be missed while it is still in the future. The risk fields are set only for
4128
+ * `AT_RISK` alerts.
4129
+ */
3054
4130
  export type MtwTrackingAlert = {
3055
4131
  __typename?: 'MtwTrackingAlert';
4132
+ /** True when an operator acknowledged this alert against the current promise. */
4133
+ acknowledged: Scalars['Boolean']['output'];
4134
+ acknowledgedAt?: Maybe<Scalars['DateTime']['output']>;
4135
+ acknowledgedBy?: Maybe<Scalars['ID']['output']>;
3056
4136
  alertType: Scalars['String']['output'];
4137
+ /** Stable alert id, `<shipmentId>:<alertType>`. */
4138
+ id: Scalars['ID']['output'];
3057
4139
  message: Scalars['String']['output'];
4140
+ predictedDelivery?: Maybe<Scalars['DateTime']['output']>;
4141
+ /** The shipment's promised delivery (estimatedDelivery) the alert was raised against. */
4142
+ promisedDelivery?: Maybe<Scalars['DateTime']['output']>;
4143
+ riskScore?: Maybe<Scalars['Int']['output']>;
3058
4144
  shipmentId: Scalars['ID']['output'];
3059
4145
  shipmentNumber: Scalars['String']['output'];
4146
+ signals?: Maybe<Array<MtwRiskSignalCode>>;
4147
+ };
4148
+
4149
+ /**
4150
+ * A persisted acknowledgement of a tracking alert. It holds while the shipment
4151
+ * keeps the promised delivery it was recorded against; re-promising the shipment
4152
+ * re-raises the alert.
4153
+ */
4154
+ export type MtwTrackingAlertAcknowledgement = {
4155
+ __typename?: 'MtwTrackingAlertAcknowledgement';
4156
+ acknowledged: Scalars['Boolean']['output'];
4157
+ acknowledgedAt: Scalars['DateTime']['output'];
4158
+ acknowledgedBy: Scalars['ID']['output'];
4159
+ alertType: MtwTrackingAlertType;
4160
+ /** Same id as the acknowledged `MtwTrackingAlert`. */
4161
+ id: Scalars['ID']['output'];
4162
+ promisedDelivery?: Maybe<Scalars['DateTime']['output']>;
4163
+ shipmentId: Scalars['ID']['output'];
3060
4164
  };
3061
4165
 
4166
+ /** Alert types `trackingAlerts` raises; used to acknowledge one. */
4167
+ export type MtwTrackingAlertType =
4168
+ | 'AT_RISK'
4169
+ | 'DELAYED';
4170
+
3062
4171
  export type MtwTrackingEvent = {
3063
4172
  __typename?: 'MtwTrackingEvent';
3064
4173
  context?: Maybe<OperationContext>;
@@ -3070,7 +4179,11 @@ export type MtwTrackingEvent = {
3070
4179
  id: Scalars['ID']['output'];
3071
4180
  location?: Maybe<Scalars['JSON']['output']>;
3072
4181
  onBehalfOf: Scalars['String']['output'];
4182
+ providerEventTime?: Maybe<Scalars['DateTime']['output']>;
4183
+ serverReceivedAt?: Maybe<Scalars['DateTime']['output']>;
3073
4184
  shipmentId: Scalars['ID']['output'];
4185
+ sourceIntegrationId?: Maybe<Scalars['ID']['output']>;
4186
+ sourceTimestampProvenance: TrackingSourceTimeProvenance;
3074
4187
  timestamp: Scalars['DateTime']['output'];
3075
4188
  updatedAt: Scalars['DateTime']['output'];
3076
4189
  updatedBy?: Maybe<Scalars['String']['output']>;
@@ -3161,6 +4274,30 @@ export type MtwTripUtilizationSummary = {
3161
4274
  unknownFactsSegmentCount: Scalars['Int']['output'];
3162
4275
  };
3163
4276
 
4277
+ export type MtwUpdateServiceOfferingInput = {
4278
+ availability?: InputMaybe<MtwServiceAvailability>;
4279
+ category?: InputMaybe<MtwServiceOfferingCategory>;
4280
+ currency?: InputMaybe<Scalars['String']['input']>;
4281
+ description?: InputMaybe<Scalars['String']['input']>;
4282
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
4283
+ name?: InputMaybe<Scalars['String']['input']>;
4284
+ price?: InputMaybe<Scalars['Float']['input']>;
4285
+ pricingUnit?: InputMaybe<Scalars['String']['input']>;
4286
+ transitDays?: InputMaybe<Scalars['Int']['input']>;
4287
+ };
4288
+
4289
+ export type MtwUpdateServiceProviderInput = {
4290
+ contactInfo?: InputMaybe<Scalars['JSON']['input']>;
4291
+ description?: InputMaybe<Scalars['String']['input']>;
4292
+ isActive?: InputMaybe<Scalars['Boolean']['input']>;
4293
+ isVerified?: InputMaybe<Scalars['Boolean']['input']>;
4294
+ name?: InputMaybe<Scalars['String']['input']>;
4295
+ rating?: InputMaybe<Scalars['Float']['input']>;
4296
+ serviceAreas?: InputMaybe<Array<Scalars['String']['input']>>;
4297
+ services?: InputMaybe<Array<Scalars['String']['input']>>;
4298
+ type?: InputMaybe<MtwServiceProviderType>;
4299
+ };
4300
+
3164
4301
  export type MtwUtilizationCapacityBasis =
3165
4302
  | 'MEASURED'
3166
4303
  | 'RATED';
@@ -3334,10 +4471,18 @@ export type Mutation = {
3334
4471
  __typename?: 'Mutation';
3335
4472
  _empty?: Maybe<Scalars['String']['output']>;
3336
4473
  acceptMtwReuseReservation: MtwReuseReservation;
4474
+ acknowledgeMtwTrackingAlert: MtwTrackingAlertAcknowledgement;
3337
4475
  addShipmentLeg: MtwShipmentLeg;
3338
4476
  addTrackingEvent: MtwTrackingEvent;
3339
4477
  adjustInventoryStock: MtwInventoryItem;
4478
+ approveMtwPickTask: MtwPickReview;
3340
4479
  assignDriverVehicle: MtwDriver;
4480
+ /**
4481
+ * Makes a marketplace provider the shipment's carrier (sets `carrierId`), or clears the carrier when
4482
+ * `providerId` is null. Inactive or unverified providers are allowed; the flags are surfaced so the
4483
+ * operator decides.
4484
+ */
4485
+ assignShipmentServiceProvider: MtwShipment;
3341
4486
  /**
3342
4487
  * Type B self-scoped capture: the calling actor must be the Driver assigned
3343
4488
  * to `input.deliveryJobId` (resolved via Driver.userId), enforced in the
@@ -3346,6 +4491,8 @@ export type Mutation = {
3346
4491
  */
3347
4492
  captureEpod: MtwProofOfDelivery;
3348
4493
  closeMtwContainerCycle: MtwContainerCycle;
4494
+ compareMtwFreightInvoice: MtwFreightInvoiceComparison;
4495
+ configureShipmentStatusSource: MtwShipment;
3349
4496
  createCargoItem: MtwCargoItem;
3350
4497
  createCustomer: MtwCustomer;
3351
4498
  createDeliveryJob: MtwDeliveryJob;
@@ -3355,6 +4502,8 @@ export type Mutation = {
3355
4502
  createInventoryTransaction: MtwInventoryTransaction;
3356
4503
  createMtwPickTaskIntent: MtwPickTask;
3357
4504
  createRoute: MtwRoute;
4505
+ createServiceOffering: MtwServiceOffering;
4506
+ createServiceProvider: MtwServiceProvider;
3358
4507
  createShipment: MtwShipment;
3359
4508
  createVehicle: MtwVehicle;
3360
4509
  createWarehouse: MtwWarehouse;
@@ -3366,6 +4515,9 @@ export type Mutation = {
3366
4515
  deleteIntegration: Scalars['Boolean']['output'];
3367
4516
  deleteInventoryItem: Scalars['Boolean']['output'];
3368
4517
  deleteRoute: Scalars['Boolean']['output'];
4518
+ deleteServiceOffering: Scalars['Boolean']['output'];
4519
+ /** Soft-deletes the provider and its offerings. Shipments that already reference it keep the reference. */
4520
+ deleteServiceProvider: Scalars['Boolean']['output'];
3369
4521
  deleteShipment: Scalars['Boolean']['output'];
3370
4522
  deleteVehicle: Scalars['Boolean']['output'];
3371
4523
  deleteWarehouse: Scalars['Boolean']['output'];
@@ -3393,10 +4545,12 @@ export type Mutation = {
3393
4545
  recordMtwTripUtilizationReport: MtwTripUtilizationReport;
3394
4546
  recordVehicleService: MtwVehicle;
3395
4547
  registerMtwContainer: MtwContainer;
4548
+ rejectMtwPickTask: MtwPickReview;
3396
4549
  releaseMtwContainerHold: MtwContainerReleaseDecision;
3397
4550
  removeShipmentLeg: Scalars['Boolean']['output'];
3398
4551
  requestMtwFreeTimeExtension: MtwFreeTimeExtension;
3399
4552
  revokeMtwInspectorQualification: MtwInspectorQualification;
4553
+ revokeMtwPickTaskReview: MtwPickReview;
3400
4554
  revokeMtwProcedureDeviation: MtwProcedureDeviation;
3401
4555
  saveMtwConsolidationManifest: MtwConsolidationManifest;
3402
4556
  saveMtwConsolidationPlan: MtwConsolidationPlan;
@@ -3415,6 +4569,8 @@ export type Mutation = {
3415
4569
  updateIntegration: MtwIntegration;
3416
4570
  updateInventoryItem: MtwInventoryItem;
3417
4571
  updateRoute: MtwRoute;
4572
+ updateServiceOffering: MtwServiceOffering;
4573
+ updateServiceProvider: MtwServiceProvider;
3418
4574
  updateShipment: MtwShipment;
3419
4575
  updateVehicle: MtwVehicle;
3420
4576
  updateVehicleLocation: MtwVehicle;
@@ -3430,6 +4586,12 @@ export type MutationAcceptMtwReuseReservationArgs = {
3430
4586
  };
3431
4587
 
3432
4588
 
4589
+ export type MutationAcknowledgeMtwTrackingAlertArgs = {
4590
+ alertType: MtwTrackingAlertType;
4591
+ shipmentId: Scalars['ID']['input'];
4592
+ };
4593
+
4594
+
3433
4595
  export type MutationAddShipmentLegArgs = {
3434
4596
  input: CreateShipmentLegInput;
3435
4597
  shipmentId: Scalars['ID']['input'];
@@ -3446,12 +4608,23 @@ export type MutationAdjustInventoryStockArgs = {
3446
4608
  };
3447
4609
 
3448
4610
 
4611
+ export type MutationApproveMtwPickTaskArgs = {
4612
+ input: RecordMtwPickReviewInput;
4613
+ };
4614
+
4615
+
3449
4616
  export type MutationAssignDriverVehicleArgs = {
3450
4617
  id: Scalars['ID']['input'];
3451
4618
  vehicleId?: InputMaybe<Scalars['ID']['input']>;
3452
4619
  };
3453
4620
 
3454
4621
 
4622
+ export type MutationAssignShipmentServiceProviderArgs = {
4623
+ providerId?: InputMaybe<Scalars['ID']['input']>;
4624
+ shipmentId: Scalars['ID']['input'];
4625
+ };
4626
+
4627
+
3455
4628
  export type MutationCaptureEpodArgs = {
3456
4629
  input: CaptureEpodInput;
3457
4630
  };
@@ -3462,6 +4635,17 @@ export type MutationCloseMtwContainerCycleArgs = {
3462
4635
  };
3463
4636
 
3464
4637
 
4638
+ export type MutationCompareMtwFreightInvoiceArgs = {
4639
+ input: CompareMtwFreightInvoiceInput;
4640
+ };
4641
+
4642
+
4643
+ export type MutationConfigureShipmentStatusSourceArgs = {
4644
+ id: Scalars['ID']['input'];
4645
+ input: ConfigureShipmentStatusSourceInput;
4646
+ };
4647
+
4648
+
3465
4649
  export type MutationCreateCargoItemArgs = {
3466
4650
  input: CreateCargoItemInput;
3467
4651
  };
@@ -3507,6 +4691,16 @@ export type MutationCreateRouteArgs = {
3507
4691
  };
3508
4692
 
3509
4693
 
4694
+ export type MutationCreateServiceOfferingArgs = {
4695
+ input: MtwCreateServiceOfferingInput;
4696
+ };
4697
+
4698
+
4699
+ export type MutationCreateServiceProviderArgs = {
4700
+ input: MtwCreateServiceProviderInput;
4701
+ };
4702
+
4703
+
3510
4704
  export type MutationCreateShipmentArgs = {
3511
4705
  input: CreateShipmentInput;
3512
4706
  };
@@ -3562,6 +4756,16 @@ export type MutationDeleteRouteArgs = {
3562
4756
  };
3563
4757
 
3564
4758
 
4759
+ export type MutationDeleteServiceOfferingArgs = {
4760
+ id: Scalars['ID']['input'];
4761
+ };
4762
+
4763
+
4764
+ export type MutationDeleteServiceProviderArgs = {
4765
+ id: Scalars['ID']['input'];
4766
+ };
4767
+
4768
+
3565
4769
  export type MutationDeleteShipmentArgs = {
3566
4770
  id: Scalars['ID']['input'];
3567
4771
  };
@@ -3698,6 +4902,11 @@ export type MutationRegisterMtwContainerArgs = {
3698
4902
  };
3699
4903
 
3700
4904
 
4905
+ export type MutationRejectMtwPickTaskArgs = {
4906
+ input: RecordMtwPickReviewInput;
4907
+ };
4908
+
4909
+
3701
4910
  export type MutationReleaseMtwContainerHoldArgs = {
3702
4911
  input: ReleaseMtwContainerHoldInput;
3703
4912
  };
@@ -3718,6 +4927,11 @@ export type MutationRevokeMtwInspectorQualificationArgs = {
3718
4927
  };
3719
4928
 
3720
4929
 
4930
+ export type MutationRevokeMtwPickTaskReviewArgs = {
4931
+ input: RecordMtwPickReviewInput;
4932
+ };
4933
+
4934
+
3721
4935
  export type MutationRevokeMtwProcedureDeviationArgs = {
3722
4936
  input: RevokeMtwProcedureDeviationInput;
3723
4937
  };
@@ -3818,6 +5032,18 @@ export type MutationUpdateRouteArgs = {
3818
5032
  };
3819
5033
 
3820
5034
 
5035
+ export type MutationUpdateServiceOfferingArgs = {
5036
+ id: Scalars['ID']['input'];
5037
+ input: MtwUpdateServiceOfferingInput;
5038
+ };
5039
+
5040
+
5041
+ export type MutationUpdateServiceProviderArgs = {
5042
+ id: Scalars['ID']['input'];
5043
+ input: MtwUpdateServiceProviderInput;
5044
+ };
5045
+
5046
+
3821
5047
  export type MutationUpdateShipmentArgs = {
3822
5048
  id: Scalars['ID']['input'];
3823
5049
  input: UpdateShipmentInput;
@@ -3922,6 +5148,13 @@ export type PlanMultiModalShipmentInput = {
3922
5148
  storeOrderId?: InputMaybe<Scalars['ID']['input']>;
3923
5149
  };
3924
5150
 
5151
+ export type PreviewMtwFreightInvoiceInput = {
5152
+ estimateVersionId: Scalars['ID']['input'];
5153
+ evidence?: InputMaybe<Array<MtwContainerEvidenceInput>>;
5154
+ facts: MtwFreightInvoiceFactsInput;
5155
+ shipmentId: Scalars['ID']['input'];
5156
+ };
5157
+
3925
5158
  export type PublishMtwProcedureVersionInput = {
3926
5159
  effectiveAt: Scalars['DateTime']['input'];
3927
5160
  evidence: Array<MtwContainerEvidenceInput>;
@@ -3984,6 +5217,7 @@ export type Query = {
3984
5217
  inventoryStats: MtwInventoryStats;
3985
5218
  inventoryTransactions: Array<MtwInventoryTransaction>;
3986
5219
  inventoryTransactionsCount: Scalars['Int']['output'];
5220
+ marketplaceStats: MtwMarketplaceStats;
3987
5221
  mtwApplicableProcedures: MtwProcedureApplicability;
3988
5222
  mtwConsolidationManifest: MtwConsolidationManifest;
3989
5223
  mtwConsolidationManifestPage: MtwConsolidationManifestPage;
@@ -3991,6 +5225,7 @@ export type Query = {
3991
5225
  mtwConsolidationObservationPage: MtwConsolidationObservationPage;
3992
5226
  mtwConsolidationPlan: MtwConsolidationPlan;
3993
5227
  mtwConsolidationPlanPage: MtwConsolidationPlanPage;
5228
+ mtwConsumedFuelPreview: MtwConsumedFuelPreview;
3994
5229
  mtwContainer?: Maybe<MtwContainer>;
3995
5230
  mtwContainerCyclePage: MtwContainerCyclePage;
3996
5231
  mtwContainerCycles: Array<MtwContainerCycle>;
@@ -4014,7 +5249,14 @@ export type Query = {
4014
5249
  mtwFreeTimeExtensionPage: MtwFreeTimeExtensionPage;
4015
5250
  mtwFreightEstimatePage: MtwFreightEstimatePage;
4016
5251
  mtwFreightEstimateVersion: MtwFreightEstimateVersion;
5252
+ mtwFreightInvoiceComparison: MtwFreightInvoiceComparison;
5253
+ /** Null is not proof of no effect and never authorizes resubmission. Exact original actor/context only. */
5254
+ mtwFreightInvoiceComparisonByRequestKey?: Maybe<MtwFreightInvoiceComparison>;
5255
+ mtwFreightInvoiceComparisonPage: MtwFreightInvoiceComparisonPage;
5256
+ mtwPalletGeometryPreview: MtwPalletGeometryPreview;
4017
5257
  mtwPickPreparation: MtwPickPreparation;
5258
+ mtwPickReview: MtwPickReview;
5259
+ mtwPickReviewPage: MtwPickReviewPage;
4018
5260
  mtwPickTask: MtwPickTask;
4019
5261
  mtwPickTaskPage: MtwPickTaskPage;
4020
5262
  mtwProcedureDeviationPage: MtwProcedureDeviationPage;
@@ -4027,11 +5269,13 @@ export type Query = {
4027
5269
  mtwReuseProposalPage: MtwReuseProposalPage;
4028
5270
  mtwReuseReservationPage: MtwReuseReservationPage;
4029
5271
  mtwReuseReservationTransitionPage: MtwReuseReservationTransitionPage;
5272
+ mtwShipmentRiskForecast: MtwRiskForecast;
4030
5273
  mtwStockBindingAssessment: MtwStockBindingAssessment;
4031
5274
  mtwStockBindingAssessmentPage: MtwStockBindingAssessmentPage;
4032
5275
  mtwStockObservation: MtwStockObservation;
4033
5276
  mtwStockObservationPage: MtwStockObservationPage;
4034
5277
  mtwTripUtilizationReportPage: MtwTripUtilizationReportPage;
5278
+ myEpodShipmentStatus?: Maybe<MtwOwnedEpodShipmentStatus>;
4035
5279
  /**
4036
5280
  * Type C self-list: delivery jobs assigned to the CALLING driver that are out
4037
5281
  * for delivery/in transit and still awaiting ePOD capture. Feeds the
@@ -4040,13 +5284,20 @@ export type Query = {
4040
5284
  myPendingEpodDeliveryJobs: Array<MtwDeliveryJob>;
4041
5285
  myPendingEpodDeliveryJobsCount: Scalars['Int']['output'];
4042
5286
  previewMtwConsolidationManifest: MtwConsolidationSnapshot;
5287
+ previewMtwFreightInvoice: MtwFreightInvoicePreview;
4043
5288
  previewMtwFreightTotal: MtwFreightPreview;
4044
5289
  route?: Maybe<MtwRoute>;
4045
5290
  routeStats: MtwRouteStats;
4046
5291
  routes: Array<MtwRoute>;
4047
5292
  routesCount: Scalars['Int']['output'];
5293
+ serviceOffering?: Maybe<MtwServiceOffering>;
5294
+ serviceOfferings: Array<MtwServiceOffering>;
5295
+ serviceProvider?: Maybe<MtwServiceProvider>;
5296
+ serviceProviders: Array<MtwServiceProvider>;
5297
+ serviceProvidersCount: Scalars['Int']['output'];
4048
5298
  shipment?: Maybe<MtwShipment>;
4049
5299
  shipmentLegs: Array<MtwShipmentLeg>;
5300
+ shipmentStatusDecisions: Array<MtwShipmentStatusDecision>;
4050
5301
  shipmentTracking: Array<MtwTrackingEvent>;
4051
5302
  shipments: Array<MtwShipment>;
4052
5303
  shipmentsCount: Scalars['Int']['output'];
@@ -4271,6 +5522,11 @@ export type QueryMtwConsolidationPlanPageArgs = {
4271
5522
  };
4272
5523
 
4273
5524
 
5525
+ export type QueryMtwConsumedFuelPreviewArgs = {
5526
+ input: MtwConsumedFuelPreviewInput;
5527
+ };
5528
+
5529
+
4274
5530
  export type QueryMtwContainerArgs = {
4275
5531
  id: Scalars['ID']['input'];
4276
5532
  };
@@ -4401,12 +5657,49 @@ export type QueryMtwFreightEstimateVersionArgs = {
4401
5657
  };
4402
5658
 
4403
5659
 
5660
+ export type QueryMtwFreightInvoiceComparisonArgs = {
5661
+ id: Scalars['ID']['input'];
5662
+ shipmentId: Scalars['ID']['input'];
5663
+ };
5664
+
5665
+
5666
+ export type QueryMtwFreightInvoiceComparisonByRequestKeyArgs = {
5667
+ requestKey: Scalars['String']['input'];
5668
+ shipmentId: Scalars['ID']['input'];
5669
+ };
5670
+
5671
+
5672
+ export type QueryMtwFreightInvoiceComparisonPageArgs = {
5673
+ invoiceIdentityId: Scalars['ID']['input'];
5674
+ pagination?: InputMaybe<MtwContainerPagination>;
5675
+ shipmentId: Scalars['ID']['input'];
5676
+ };
5677
+
5678
+
5679
+ export type QueryMtwPalletGeometryPreviewArgs = {
5680
+ input: MtwPalletGeometryPreviewInput;
5681
+ };
5682
+
5683
+
4404
5684
  export type QueryMtwPickPreparationArgs = {
4405
5685
  destinationInventoryItemId: Scalars['ID']['input'];
4406
5686
  sourceInventoryItemId: Scalars['ID']['input'];
4407
5687
  };
4408
5688
 
4409
5689
 
5690
+ export type QueryMtwPickReviewArgs = {
5691
+ id: Scalars['ID']['input'];
5692
+ taskId: Scalars['ID']['input'];
5693
+ };
5694
+
5695
+
5696
+ export type QueryMtwPickReviewPageArgs = {
5697
+ limit?: Scalars['Int']['input'];
5698
+ offset?: Scalars['Int']['input'];
5699
+ taskId: Scalars['ID']['input'];
5700
+ };
5701
+
5702
+
4410
5703
  export type QueryMtwPickTaskArgs = {
4411
5704
  id: Scalars['ID']['input'];
4412
5705
  };
@@ -4477,6 +5770,11 @@ export type QueryMtwReuseReservationTransitionPageArgs = {
4477
5770
  };
4478
5771
 
4479
5772
 
5773
+ export type QueryMtwShipmentRiskForecastArgs = {
5774
+ shipmentId: Scalars['ID']['input'];
5775
+ };
5776
+
5777
+
4480
5778
  export type QueryMtwStockBindingAssessmentArgs = {
4481
5779
  id: Scalars['ID']['input'];
4482
5780
  inventoryItemId: Scalars['ID']['input'];
@@ -4507,6 +5805,11 @@ export type QueryMtwTripUtilizationReportPageArgs = {
4507
5805
  };
4508
5806
 
4509
5807
 
5808
+ export type QueryMyEpodShipmentStatusArgs = {
5809
+ deliveryJobId: Scalars['ID']['input'];
5810
+ };
5811
+
5812
+
4510
5813
  export type QueryMyPendingEpodDeliveryJobsArgs = {
4511
5814
  pagination?: InputMaybe<PaginationInput>;
4512
5815
  };
@@ -4518,6 +5821,11 @@ export type QueryPreviewMtwConsolidationManifestArgs = {
4518
5821
  };
4519
5822
 
4520
5823
 
5824
+ export type QueryPreviewMtwFreightInvoiceArgs = {
5825
+ input: PreviewMtwFreightInvoiceInput;
5826
+ };
5827
+
5828
+
4521
5829
  export type QueryPreviewMtwFreightTotalArgs = {
4522
5830
  input: MtwFreightFactsInput;
4523
5831
  };
@@ -4539,6 +5847,33 @@ export type QueryRoutesCountArgs = {
4539
5847
  };
4540
5848
 
4541
5849
 
5850
+ export type QueryServiceOfferingArgs = {
5851
+ id: Scalars['ID']['input'];
5852
+ };
5853
+
5854
+
5855
+ export type QueryServiceOfferingsArgs = {
5856
+ filter?: InputMaybe<MtwServiceOfferingFilterInput>;
5857
+ pagination?: InputMaybe<PaginationInput>;
5858
+ };
5859
+
5860
+
5861
+ export type QueryServiceProviderArgs = {
5862
+ id: Scalars['ID']['input'];
5863
+ };
5864
+
5865
+
5866
+ export type QueryServiceProvidersArgs = {
5867
+ filter?: InputMaybe<MtwServiceProviderFilterInput>;
5868
+ pagination?: InputMaybe<PaginationInput>;
5869
+ };
5870
+
5871
+
5872
+ export type QueryServiceProvidersCountArgs = {
5873
+ filter?: InputMaybe<MtwServiceProviderFilterInput>;
5874
+ };
5875
+
5876
+
4542
5877
  export type QueryShipmentArgs = {
4543
5878
  id: Scalars['ID']['input'];
4544
5879
  };
@@ -4549,6 +5884,12 @@ export type QueryShipmentLegsArgs = {
4549
5884
  };
4550
5885
 
4551
5886
 
5887
+ export type QueryShipmentStatusDecisionsArgs = {
5888
+ pagination?: InputMaybe<PaginationInput>;
5889
+ shipmentId: Scalars['ID']['input'];
5890
+ };
5891
+
5892
+
4552
5893
  export type QueryShipmentTrackingArgs = {
4553
5894
  pagination?: InputMaybe<PaginationInput>;
4554
5895
  shipmentId: Scalars['ID']['input'];
@@ -4721,6 +6062,23 @@ export type RecordMtwFreeTimeExtensionDecisionInput = {
4721
6062
  sourceReference: Scalars['String']['input'];
4722
6063
  };
4723
6064
 
6065
+ export type RecordMtwPickReviewInput = {
6066
+ actions: Array<MtwPickReviewAction>;
6067
+ evidence: Array<MtwContainerEvidenceInput>;
6068
+ expectedPreviousDecisionId?: InputMaybe<Scalars['ID']['input']>;
6069
+ expectedVersion: Scalars['Int']['input'];
6070
+ handlingPolicy?: InputMaybe<MtwMoveReviewSourceInput>;
6071
+ idempotencyKey: Scalars['String']['input'];
6072
+ intentHash: Scalars['String']['input'];
6073
+ note: Scalars['String']['input'];
6074
+ quantityCeiling?: InputMaybe<Scalars['Int']['input']>;
6075
+ sop?: InputMaybe<MtwMoveReviewSourceInput>;
6076
+ subjectActorId: Scalars['ID']['input'];
6077
+ taskId: Scalars['ID']['input'];
6078
+ validFrom?: InputMaybe<Scalars['DateTime']['input']>;
6079
+ validUntil?: InputMaybe<Scalars['DateTime']['input']>;
6080
+ };
6081
+
4724
6082
  export type RecordMtwProcedureDeviationInput = {
4725
6083
  evidence: Array<MtwContainerEvidenceInput>;
4726
6084
  executionId: Scalars['ID']['input'];
@@ -4910,6 +6268,7 @@ export type SaveMtwConsolidationPlanInput = {
4910
6268
  };
4911
6269
 
4912
6270
  export type SaveMtwFreightEstimateInput = {
6271
+ commercialCapture?: InputMaybe<MtwFreightCommercialCaptureInput>;
4913
6272
  estimateReference: Scalars['String']['input'];
4914
6273
  evidence: Array<MtwContainerEvidenceInput>;
4915
6274
  expectedPreviousVersionId?: InputMaybe<Scalars['ID']['input']>;
@@ -4949,6 +6308,35 @@ export type ShipmentStatus =
4949
6308
  | 'PLANNED'
4950
6309
  | 'RETURNED';
4951
6310
 
6311
+ export type ShipmentStatusAuthority =
6312
+ | 'INTEGRATION_EVENT_TIME'
6313
+ | 'LEGACY_HOLD'
6314
+ | 'MANUAL_HOLD';
6315
+
6316
+ export type ShipmentStatusDecisionOrigin =
6317
+ | 'DIRECT_TRACKING'
6318
+ | 'EPOD'
6319
+ | 'INITIAL_CREATION'
6320
+ | 'INTEGRATION'
6321
+ | 'MANUAL'
6322
+ | 'SOURCE_CONFIGURATION';
6323
+
6324
+ export type ShipmentStatusDecisionOutcome =
6325
+ | 'APPLIED'
6326
+ | 'HELD';
6327
+
6328
+ export type ShipmentStatusHeldReason =
6329
+ | 'EQUAL_SOURCE_TIME'
6330
+ | 'LEGACY_AUTHORITY'
6331
+ | 'MANUAL_AUTHORITY'
6332
+ | 'NON_DESIGNATED_SOURCE'
6333
+ | 'OLDER_SOURCE_TIME'
6334
+ | 'SOURCE_TIME_IN_FUTURE'
6335
+ | 'SOURCE_TIME_TOO_OLD'
6336
+ | 'UNKNOWN_SOURCE_TIME'
6337
+ | 'UNMAPPED_EVENT_TYPE'
6338
+ | 'UNRECEIPTED_EVIDENCE';
6339
+
4952
6340
  export type ShippingQuoteInput = {
4953
6341
  /** Cash on delivery. */
4954
6342
  cod?: InputMaybe<Scalars['Boolean']['input']>;
@@ -5019,6 +6407,12 @@ export type TrackingEventType =
5019
6407
  | 'PICKED_UP'
5020
6408
  | 'RETURNED';
5021
6409
 
6410
+ export type TrackingSourceTimeProvenance =
6411
+ | 'LEGACY_UNKNOWN'
6412
+ | 'PROVIDER_TIME_UNVERIFIED'
6413
+ | 'PROVIDER_TIME_VALIDATED'
6414
+ | 'RECEIPT_TIME_FALLBACK';
6415
+
5022
6416
  export type TransferInventoryStockInput = {
5023
6417
  destinationInventoryItemId: Scalars['ID']['input'];
5024
6418
  quantity: Scalars['Int']['input'];
@@ -5155,8 +6549,10 @@ export type UpdateShipmentInput = {
5155
6549
  deliveryJobId?: InputMaybe<Scalars['ID']['input']>;
5156
6550
  destination?: InputMaybe<Scalars['JSON']['input']>;
5157
6551
  estimatedDelivery?: InputMaybe<Scalars['DateTime']['input']>;
6552
+ expectedStatusRevision?: InputMaybe<Scalars['Int']['input']>;
5158
6553
  origin?: InputMaybe<Scalars['JSON']['input']>;
5159
6554
  status?: InputMaybe<ShipmentStatus>;
6555
+ statusReason?: InputMaybe<Scalars['String']['input']>;
5160
6556
  storeOrderId?: InputMaybe<Scalars['ID']['input']>;
5161
6557
  trackingNumber?: InputMaybe<Scalars['String']['input']>;
5162
6558
  };