@burdenoff/microfe-movethewheels 2026.920.3 → 2026.921.1
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.
- package/dist/components/CarbonFootprintPanel.js +1 -1
- package/dist/components/CustomerPicker.js +76 -65
- package/dist/components/DataTable.js +140 -139
- package/dist/components/DocumentsCard.js +14 -8
- package/dist/generated/wspace-types.d.ts +1043 -5
- package/dist/hooks/useAnalytics.js +21 -1
- package/dist/hooks/useCustomers.js +94 -78
- package/dist/hooks/useDebouncedValue.js +11 -0
- package/dist/hooks/useEntityDocuments.js +28 -18
- package/dist/hooks/useEpod.js +24 -17
- package/dist/hooks/useFleet.js +146 -125
- package/dist/hooks/useInventory.js +255 -186
- package/dist/hooks/useMultiModalShipments.js +35 -27
- package/dist/hooks/useOrders.js +73 -73
- package/dist/hooks/useRoutes.js +97 -75
- package/dist/hooks/useTracking.js +100 -88
- package/dist/movethewheels/components/CustomerPicker.d.ts +3 -1
- package/dist/movethewheels/components/DataTable.d.ts +5 -1
- package/dist/movethewheels/hooks/useCustomers.d.ts +0 -1
- package/dist/movethewheels/hooks/useDebouncedValue.d.ts +1 -0
- package/dist/movethewheels/hooks/useEntityDocuments.d.ts +2 -0
- package/dist/movethewheels/hooks/useEpod.d.ts +6 -1
- package/dist/movethewheels/hooks/useFleet.d.ts +49 -5
- package/dist/movethewheels/hooks/useInventory.d.ts +24 -17
- package/dist/movethewheels/hooks/useMultiModalShipments.d.ts +6 -1
- package/dist/movethewheels/hooks/useOrders.d.ts +33 -5
- package/dist/movethewheels/hooks/useRoutes.d.ts +2 -1
- package/dist/movethewheels/hooks/useTracking.d.ts +12 -11
- package/dist/movethewheels/types/index.d.ts +7 -5
- package/dist/pages/CreateOrderPage.js +207 -201
- package/dist/pages/CustomersPage.js +61 -54
- package/dist/pages/DeliveryCapturePage.js +131 -109
- package/dist/pages/DriversPage.js +100 -92
- package/dist/pages/InventoryPage.js +239 -236
- package/dist/pages/MultiModalShipmentPage.js +163 -130
- package/dist/pages/OrderDetailsPage.js +224 -208
- package/dist/pages/OrdersListPage.js +66 -60
- package/dist/pages/ProductDetailsPage.js +241 -200
- package/dist/pages/ProductsPage.js +59 -52
- package/dist/pages/RouteDetailsPage.js +343 -321
- package/dist/pages/RoutesPage.js +55 -48
- package/dist/pages/VehiclesPage.js +63 -56
- package/dist/pages/WarehousesPage.js +60 -53
- package/package.json +1 -1
- package/src/generated/wspace-types.ts +1188 -5
- package/src/movethewheels/components/CarbonFootprintPanel.tsx +0 -1
- package/src/movethewheels/components/CustomerPicker.tsx +14 -0
- package/src/movethewheels/components/DataTable.tsx +34 -18
- package/src/movethewheels/components/DocumentsCard.tsx +6 -1
- package/src/movethewheels/components/maps/leaflet-setup.ts +1 -8
- package/src/movethewheels/hooks/useAnalytics.ts +27 -0
- package/src/movethewheels/hooks/useCustomers.ts +64 -24
- package/src/movethewheels/hooks/useDebouncedValue.ts +12 -0
- package/src/movethewheels/hooks/useEntityDocuments.ts +43 -25
- package/src/movethewheels/hooks/useEpod.ts +14 -7
- package/src/movethewheels/hooks/useFleet.ts +58 -37
- package/src/movethewheels/hooks/useFleetIntelligence.ts +1 -4
- package/src/movethewheels/hooks/useInventory.ts +211 -90
- package/src/movethewheels/hooks/useMultiModalShipments.ts +15 -11
- package/src/movethewheels/hooks/useOrders.ts +13 -14
- package/src/movethewheels/hooks/useRoutes.ts +80 -23
- package/src/movethewheels/hooks/useTracking.ts +130 -98
- package/src/movethewheels/pages/CreateOrderPage.tsx +9 -1
- package/src/movethewheels/pages/CustomersPage.tsx +11 -1
- package/src/movethewheels/pages/DeliveryCapturePage.tsx +31 -1
- package/src/movethewheels/pages/DriversPage.tsx +24 -12
- package/src/movethewheels/pages/InventoryPage.tsx +57 -32
- package/src/movethewheels/pages/MultiModalShipmentPage.tsx +52 -3
- package/src/movethewheels/pages/OrderDetailsPage.tsx +17 -1
- package/src/movethewheels/pages/OrdersListPage.tsx +20 -3
- package/src/movethewheels/pages/ProductDetailsPage.tsx +52 -3
- package/src/movethewheels/pages/ProductsPage.tsx +11 -1
- package/src/movethewheels/pages/RouteDetailsPage.tsx +35 -5
- package/src/movethewheels/pages/RoutesPage.tsx +11 -1
- package/src/movethewheels/pages/VehiclesPage.tsx +19 -2
- package/src/movethewheels/pages/WarehousesPage.tsx +11 -1
- package/src/movethewheels/types/index.ts +7 -5
|
@@ -2124,6 +2124,68 @@ export enum AgentVisibility {
|
|
|
2124
2124
|
Workspace = 'WORKSPACE'
|
|
2125
2125
|
}
|
|
2126
2126
|
|
|
2127
|
+
/** A decision the engine proposed, with the evidence and rails behind it. */
|
|
2128
|
+
export type AgronomyDecision = {
|
|
2129
|
+
__typename?: 'AgronomyDecision';
|
|
2130
|
+
/** Why a rail blocked it, in words a farmer can act on. Null unless BLOCKED. */
|
|
2131
|
+
blockedReason?: Maybe<Scalars['String']['output']>;
|
|
2132
|
+
/** 0..1, or null when nothing honest could be reported. */
|
|
2133
|
+
confidence?: Maybe<Scalars['Float']['output']>;
|
|
2134
|
+
createdAt: Scalars['String']['output'];
|
|
2135
|
+
decidedAt?: Maybe<Scalars['String']['output']>;
|
|
2136
|
+
decidedBy?: Maybe<Scalars['String']['output']>;
|
|
2137
|
+
/** One of: IRRIGATION | TREATMENT. */
|
|
2138
|
+
decisionType: Scalars['String']['output'];
|
|
2139
|
+
fieldId?: Maybe<Scalars['ID']['output']>;
|
|
2140
|
+
id: Scalars['ID']['output'];
|
|
2141
|
+
/** The real records this rests on — probe code, reading timestamp, scan id. Never a summary: every card must cite something the farmer can go and look at. */
|
|
2142
|
+
inputs?: Maybe<Scalars['JSON']['output']>;
|
|
2143
|
+
modelName?: Maybe<Scalars['String']['output']>;
|
|
2144
|
+
modelProvider?: Maybe<Scalars['String']['output']>;
|
|
2145
|
+
plantScanId?: Maybe<Scalars['ID']['output']>;
|
|
2146
|
+
railChecks: Array<AgronomyRailCheck>;
|
|
2147
|
+
rationale: Scalars['String']['output'];
|
|
2148
|
+
/** Recommended irrigation depth in mm. Null for non-irrigation decisions, and zero when the recommendation is to hold off. */
|
|
2149
|
+
recommendedMm?: Maybe<Scalars['Int']['output']>;
|
|
2150
|
+
/** MODEL | HEURISTIC — whether a model actually produced this wording. */
|
|
2151
|
+
source: Scalars['String']['output'];
|
|
2152
|
+
/** One of: PROPOSED | ACCEPTED | REJECTED | BLOCKED. BLOCKED is a compliance rail's verdict, not a suggestion — it can never be accepted. If the rule is wrong, the fix is to correct the substance rulebook, which leaves a record. */
|
|
2153
|
+
status: Scalars['String']['output'];
|
|
2154
|
+
/** The field or plant scan this is about. */
|
|
2155
|
+
subjectId: Scalars['ID']['output'];
|
|
2156
|
+
/** FIELD | PLANT_SCAN. */
|
|
2157
|
+
subjectType: Scalars['String']['output'];
|
|
2158
|
+
title: Scalars['String']['output'];
|
|
2159
|
+
updatedAt: Scalars['String']['output'];
|
|
2160
|
+
};
|
|
2161
|
+
|
|
2162
|
+
export type AgronomyDecisionFilterInput = {
|
|
2163
|
+
/** IRRIGATION | TREATMENT. */
|
|
2164
|
+
decisionType?: InputMaybe<Scalars['String']['input']>;
|
|
2165
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
2166
|
+
/** PROPOSED | ACCEPTED | REJECTED | BLOCKED. */
|
|
2167
|
+
status?: InputMaybe<Scalars['String']['input']>;
|
|
2168
|
+
};
|
|
2169
|
+
|
|
2170
|
+
/** Result of a sweep. */
|
|
2171
|
+
export type AgronomyDecisionSweepResult = {
|
|
2172
|
+
__typename?: 'AgronomyDecisionSweepResult';
|
|
2173
|
+
decisions: Array<AgronomyDecision>;
|
|
2174
|
+
/** Subjects the sweep did not reach, so "no proposals" is never confused with "not looked at". */
|
|
2175
|
+
skipped: Scalars['Int']['output'];
|
|
2176
|
+
skippedReason?: Maybe<Scalars['String']['output']>;
|
|
2177
|
+
};
|
|
2178
|
+
|
|
2179
|
+
/** One compliance rail and what it concluded (HB-UC-19). `NOT_APPLICABLE` is recorded rather than omitted: on a card read six months from now, "this rail does not apply here" and "nobody remembered to run it" look identical, and only one of them is safe. */
|
|
2180
|
+
export type AgronomyRailCheck = {
|
|
2181
|
+
__typename?: 'AgronomyRailCheck';
|
|
2182
|
+
detail: Scalars['String']['output'];
|
|
2183
|
+
/** One of: PASS | BLOCKED | NOT_APPLICABLE. */
|
|
2184
|
+
outcome: Scalars['String']['output'];
|
|
2185
|
+
/** Rail identifier, e.g. PROHIBITED_SUBSTANCE | MEDICATION_WITHDRAWAL. */
|
|
2186
|
+
rail: Scalars['String']['output'];
|
|
2187
|
+
};
|
|
2188
|
+
|
|
2127
2189
|
export type AiContext = {
|
|
2128
2190
|
__typename?: 'AiContext';
|
|
2129
2191
|
content: Scalars['String']['output'];
|
|
@@ -4623,6 +4685,8 @@ export type Auction = {
|
|
|
4623
4685
|
export type Audit = {
|
|
4624
4686
|
__typename?: 'Audit';
|
|
4625
4687
|
auditor: Scalars['String']['output'];
|
|
4688
|
+
/** The certification this audit was carried out against, or null when it was not carried out against one (BOFF-6107). An audit linked here with open critical findings blocks that certificate from being marked Active. */
|
|
4689
|
+
certificationId?: Maybe<Scalars['ID']['output']>;
|
|
4626
4690
|
completedDate?: Maybe<Scalars['String']['output']>;
|
|
4627
4691
|
criticalFindings: Scalars['Int']['output'];
|
|
4628
4692
|
findings: Scalars['Int']['output'];
|
|
@@ -11071,6 +11135,18 @@ export type ComplianceDocument = {
|
|
|
11071
11135
|
uploadedDate: Scalars['String']['output'];
|
|
11072
11136
|
};
|
|
11073
11137
|
|
|
11138
|
+
/** BOFF-6043 — a rendered audit document, returned inline as base64. Same shape as `HealthyBowlAccountingExport`: the client decodes and downloads, or hands the bytes to Files to archive. Inline rather than a signed URL because the bytes are built per request from live rows — there is nothing to store, and a stored copy would go stale the moment a checklist moved. */
|
|
11139
|
+
export type ComplianceExportFile = {
|
|
11140
|
+
__typename?: 'ComplianceExportFile';
|
|
11141
|
+
byteSize: Scalars['Int']['output'];
|
|
11142
|
+
/** Base64-encoded file bytes. */
|
|
11143
|
+
contentBase64: Scalars['String']['output'];
|
|
11144
|
+
filename: Scalars['String']['output'];
|
|
11145
|
+
/** PDF */
|
|
11146
|
+
format: Scalars['String']['output'];
|
|
11147
|
+
mimeType: Scalars['String']['output'];
|
|
11148
|
+
};
|
|
11149
|
+
|
|
11074
11150
|
/** A compliance finding: a domain observation, not a notification. Alerts are dispatched via the platform notification service. */
|
|
11075
11151
|
export type ComplianceFlag = {
|
|
11076
11152
|
__typename?: 'ComplianceFlag';
|
|
@@ -11445,6 +11521,15 @@ export type ConsoleValidationResult = {
|
|
|
11445
11521
|
valid: Scalars['Boolean']['output'];
|
|
11446
11522
|
};
|
|
11447
11523
|
|
|
11524
|
+
/** A bookable appointment window (BOFF-6030). */
|
|
11525
|
+
export type ConsultSlot = {
|
|
11526
|
+
__typename?: 'ConsultSlot';
|
|
11527
|
+
/** False when someone already holds this time. Taken slots are returned rather than omitted: a picker that hides 10:00 looks like a consultant who does not work then, where a disabled 10:00 says someone else got there first. */
|
|
11528
|
+
available: Scalars['Boolean']['output'];
|
|
11529
|
+
end: Scalars['String']['output'];
|
|
11530
|
+
start: Scalars['String']['output'];
|
|
11531
|
+
};
|
|
11532
|
+
|
|
11448
11533
|
export type Consultation = {
|
|
11449
11534
|
__typename?: 'Consultation';
|
|
11450
11535
|
consultantId: Scalars['String']['output'];
|
|
@@ -11455,7 +11540,11 @@ export type Consultation = {
|
|
|
11455
11540
|
id: Scalars['ID']['output'];
|
|
11456
11541
|
mode: Scalars['String']['output'];
|
|
11457
11542
|
notes?: Maybe<Scalars['String']['output']>;
|
|
11543
|
+
/** The requested day. Kept alongside `slotStart`: consultations booked before BOFF-6030 carry a day and no time, and must keep rendering. */
|
|
11458
11544
|
requestedDate: Scalars['String']['output'];
|
|
11545
|
+
slotEnd?: Maybe<Scalars['String']['output']>;
|
|
11546
|
+
/** BOFF-6030 — the agreed appointment window. Null on a consultation booked before slots existed. */
|
|
11547
|
+
slotStart?: Maybe<Scalars['String']['output']>;
|
|
11459
11548
|
status: ConsultationStatus;
|
|
11460
11549
|
topic: Scalars['String']['output'];
|
|
11461
11550
|
};
|
|
@@ -13530,6 +13619,8 @@ export type CreateAssetTransactionInput = {
|
|
|
13530
13619
|
|
|
13531
13620
|
export type CreateAuditInput = {
|
|
13532
13621
|
auditor: Scalars['String']['input'];
|
|
13622
|
+
/** The certification this audit is being carried out against, if any. An id belonging to another workspace is stored as null rather than rejected — the audit itself is still valid, it is simply not attributable to a certificate this workspace owns. */
|
|
13623
|
+
certificationId?: InputMaybe<Scalars['ID']['input']>;
|
|
13533
13624
|
context: ContextInput;
|
|
13534
13625
|
scheduledDate: Scalars['String']['input'];
|
|
13535
13626
|
title: Scalars['String']['input'];
|
|
@@ -14036,6 +14127,8 @@ export type CreateConsultationInput = {
|
|
|
14036
14127
|
/** BOFF-6081 — link this booking back to an AI plant scan (the INCONCLUSIVE hand-off). The scan's context is stamped with the created consultation id. */
|
|
14037
14128
|
plantScanId?: InputMaybe<Scalars['ID']['input']>;
|
|
14038
14129
|
requestedDate: Scalars['String']['input'];
|
|
14130
|
+
/** BOFF-6030 — ISO instant for the chosen slot. Optional; `slotEnd` is derived from the rule. */
|
|
14131
|
+
slotStart?: InputMaybe<Scalars['String']['input']>;
|
|
14039
14132
|
topic: Scalars['String']['input'];
|
|
14040
14133
|
};
|
|
14041
14134
|
|
|
@@ -14494,6 +14587,20 @@ export type CreateDigitalTwinInput = {
|
|
|
14494
14587
|
properties?: InputMaybe<Scalars['JSONObject']['input']>;
|
|
14495
14588
|
};
|
|
14496
14589
|
|
|
14590
|
+
/** Input for createDisposableWorkspace (BOFF-6560, service-actor-only). No gateway-injected tenant/org/actor context exists for an M2M caller, so every identity field is explicit here — mirrors SyncFromGlobalInput's service-to-service shape rather than CreateWorkspaceInput's user-session one. */
|
|
14591
|
+
export type CreateDisposableWorkspaceInput = {
|
|
14592
|
+
/** Display name of the disposable workspace */
|
|
14593
|
+
name: Scalars['String']['input'];
|
|
14594
|
+
/** Organization ID this disposable workspace belongs to */
|
|
14595
|
+
orgId: Scalars['ID']['input'];
|
|
14596
|
+
/** Owner user ID for the disposable workspace (the operator/service identity responsible for its lifecycle, not necessarily an end-user) */
|
|
14597
|
+
ownerId: Scalars['ID']['input'];
|
|
14598
|
+
/** Tenant ID this disposable workspace belongs to */
|
|
14599
|
+
tenantId: Scalars['ID']['input'];
|
|
14600
|
+
/** Type of workspace (defaults to WORKSPACE) */
|
|
14601
|
+
type?: InputMaybe<WorkspaceType>;
|
|
14602
|
+
};
|
|
14603
|
+
|
|
14497
14604
|
export type CreateDriverInput = {
|
|
14498
14605
|
certifications?: InputMaybe<Scalars['JSON']['input']>;
|
|
14499
14606
|
context?: InputMaybe<ContextInput>;
|
|
@@ -15636,6 +15743,14 @@ export type CreateHealthyBowlCostCenterInput = {
|
|
|
15636
15743
|
yieldUnit?: InputMaybe<Scalars['String']['input']>;
|
|
15637
15744
|
};
|
|
15638
15745
|
|
|
15746
|
+
export type CreateHealthyBowlCrewInput = {
|
|
15747
|
+
context: ContextInput;
|
|
15748
|
+
isActive?: InputMaybe<Scalars['Boolean']['input']>;
|
|
15749
|
+
leadWorkerId?: InputMaybe<Scalars['ID']['input']>;
|
|
15750
|
+
name: Scalars['String']['input'];
|
|
15751
|
+
workerIds?: InputMaybe<Array<Scalars['ID']['input']>>;
|
|
15752
|
+
};
|
|
15753
|
+
|
|
15639
15754
|
export type CreateHealthyBowlCsaPickupLocationInput = {
|
|
15640
15755
|
/** Same JSON shape as CsaMembership.deliveryAddress. */
|
|
15641
15756
|
address?: InputMaybe<Scalars['JSON']['input']>;
|
|
@@ -15685,9 +15800,15 @@ export type CreateHealthyBowlDiseaseWarningRuleInput = {
|
|
|
15685
15800
|
};
|
|
15686
15801
|
|
|
15687
15802
|
export type CreateHealthyBowlFarmRecommendationInput = {
|
|
15803
|
+
/** BOFF-3676 — HUMAN (default) or MODEL. Omitting it means HUMAN: a caller that does not say otherwise IS one, and inferring MODEL would attach a machine's authority to a person's advice. */
|
|
15804
|
+
authorKind?: InputMaybe<Scalars['String']['input']>;
|
|
15805
|
+
confidence?: InputMaybe<Scalars['Float']['input']>;
|
|
15688
15806
|
detail: Scalars['String']['input'];
|
|
15689
15807
|
domain: Scalars['String']['input'];
|
|
15808
|
+
/** Only meaningful when authorKind is MODEL; ignored otherwise. */
|
|
15809
|
+
modelName?: InputMaybe<Scalars['String']['input']>;
|
|
15690
15810
|
priority?: InputMaybe<HealthyBowlFarmRecommendationPriority>;
|
|
15811
|
+
rationale?: InputMaybe<Scalars['String']['input']>;
|
|
15691
15812
|
title: Scalars['String']['input'];
|
|
15692
15813
|
/** The CLIENT workspace this recommendation is written onto (the consultant must hold an active assignment to it). */
|
|
15693
15814
|
workspaceId: Scalars['ID']['input'];
|
|
@@ -15738,6 +15859,7 @@ export type CreateHealthyBowlInputPlanInput = {
|
|
|
15738
15859
|
};
|
|
15739
15860
|
|
|
15740
15861
|
export type CreateHealthyBowlIrrigationAutomationInput = {
|
|
15862
|
+
autoTaskEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
15741
15863
|
context: ContextInput;
|
|
15742
15864
|
notifyInApp?: InputMaybe<Scalars['Boolean']['input']>;
|
|
15743
15865
|
rainProbThreshold?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -15768,6 +15890,16 @@ export type CreateHealthyBowlLedgerAccountInput = {
|
|
|
15768
15890
|
sortOrder?: InputMaybe<Scalars['Int']['input']>;
|
|
15769
15891
|
};
|
|
15770
15892
|
|
|
15893
|
+
export type CreateHealthyBowlLoanMilestoneInput = {
|
|
15894
|
+
context: ContextInput;
|
|
15895
|
+
description?: InputMaybe<Scalars['String']['input']>;
|
|
15896
|
+
/** HARVEST or PLANTING_ACTIVITY. Optional at creation; required by the time it is released. */
|
|
15897
|
+
evidenceType?: InputMaybe<Scalars['String']['input']>;
|
|
15898
|
+
label: Scalars['String']['input'];
|
|
15899
|
+
loanId: Scalars['ID']['input'];
|
|
15900
|
+
releaseAmount: Scalars['Float']['input'];
|
|
15901
|
+
};
|
|
15902
|
+
|
|
15771
15903
|
export type CreateHealthyBowlMapFeatureInput = {
|
|
15772
15904
|
color?: InputMaybe<Scalars['String']['input']>;
|
|
15773
15905
|
context: ContextInput;
|
|
@@ -15907,6 +16039,7 @@ export type CreateHealthyBowlStorageLocationInput = {
|
|
|
15907
16039
|
export type CreateHealthyBowlSuccessionPlanInput = {
|
|
15908
16040
|
/** Optional loose link to a Bed (no FK). */
|
|
15909
16041
|
bedId?: InputMaybe<Scalars['ID']['input']>;
|
|
16042
|
+
bedWidthM?: InputMaybe<Scalars['Float']['input']>;
|
|
15910
16043
|
context: ContextInput;
|
|
15911
16044
|
/** Number of successions to generate (>= 1). */
|
|
15912
16045
|
count: Scalars['Int']['input'];
|
|
@@ -15916,9 +16049,13 @@ export type CreateHealthyBowlSuccessionPlanInput = {
|
|
|
15916
16049
|
/** Days between successive sowings. */
|
|
15917
16050
|
intervalDays: Scalars['Int']['input'];
|
|
15918
16051
|
notes?: InputMaybe<Scalars['String']['input']>;
|
|
16052
|
+
pathWidthM?: InputMaybe<Scalars['Float']['input']>;
|
|
15919
16053
|
/** Optional loose link to a PlantCatalog entry (no FK). */
|
|
15920
16054
|
plantCatalogId?: InputMaybe<Scalars['ID']['input']>;
|
|
16055
|
+
/** BOFF-6100 — geometry supplied by the succession form; server derives one set of figures for every child. */
|
|
16056
|
+
plantSpacingCm?: InputMaybe<Scalars['Float']['input']>;
|
|
15921
16057
|
plantsNeeded?: InputMaybe<Scalars['Int']['input']>;
|
|
16058
|
+
rowSpacingCm?: InputMaybe<Scalars['Float']['input']>;
|
|
15922
16059
|
/** Growing season. Must be one of: KHARIF, RABI, ZAID, PERENNIAL (case-insensitive). */
|
|
15923
16060
|
season?: InputMaybe<Scalars['String']['input']>;
|
|
15924
16061
|
seedGrams?: InputMaybe<Scalars['Float']['input']>;
|
|
@@ -15996,6 +16133,19 @@ export type CreateHealthyBowlWholesaleOrderInput = {
|
|
|
15996
16133
|
quantityKg: Scalars['Float']['input'];
|
|
15997
16134
|
};
|
|
15998
16135
|
|
|
16136
|
+
export type CreateHealthyBowlWorkerInput = {
|
|
16137
|
+
context: ContextInput;
|
|
16138
|
+
dailyWage?: InputMaybe<Scalars['Float']['input']>;
|
|
16139
|
+
employmentType?: InputMaybe<Scalars['String']['input']>;
|
|
16140
|
+
hourlyRate?: InputMaybe<Scalars['Float']['input']>;
|
|
16141
|
+
isActive?: InputMaybe<Scalars['Boolean']['input']>;
|
|
16142
|
+
linkedActorId?: InputMaybe<Scalars['String']['input']>;
|
|
16143
|
+
name: Scalars['String']['input'];
|
|
16144
|
+
phone?: InputMaybe<Scalars['String']['input']>;
|
|
16145
|
+
piecePrice?: InputMaybe<Scalars['Float']['input']>;
|
|
16146
|
+
skills?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
16147
|
+
};
|
|
16148
|
+
|
|
15999
16149
|
export type CreateIcsGroupInput = {
|
|
16000
16150
|
certificationId?: InputMaybe<Scalars['ID']['input']>;
|
|
16001
16151
|
/** Unique within the workspace. */
|
|
@@ -16384,23 +16534,30 @@ export type CreatePipelineStageInput = {
|
|
|
16384
16534
|
export type CreatePlantingPlanInput = {
|
|
16385
16535
|
/** Optional loose link to a Bed (no FK). */
|
|
16386
16536
|
bedId?: InputMaybe<Scalars['ID']['input']>;
|
|
16537
|
+
bedWidthM?: InputMaybe<Scalars['Float']['input']>;
|
|
16387
16538
|
context: ContextInput;
|
|
16388
16539
|
cropId?: InputMaybe<Scalars['ID']['input']>;
|
|
16540
|
+
/** BOFF-6100 — caller fallback only for non-bed/no-area fields; server-derived otherwise. */
|
|
16541
|
+
density?: InputMaybe<Scalars['Float']['input']>;
|
|
16389
16542
|
endDate?: InputMaybe<Scalars['String']['input']>;
|
|
16390
16543
|
expectedYield?: InputMaybe<Scalars['Float']['input']>;
|
|
16391
16544
|
fertilizers?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
16392
16545
|
fieldId: Scalars['ID']['input'];
|
|
16546
|
+
pathWidthM?: InputMaybe<Scalars['Float']['input']>;
|
|
16393
16547
|
/** Optional loose link to a PlantCatalog entry (no FK). */
|
|
16394
16548
|
plantCatalogId?: InputMaybe<Scalars['ID']['input']>;
|
|
16395
|
-
/**
|
|
16549
|
+
/** BOFF-6100 — bed geometry, so the server can reproduce the numbers the farmer saw on screen. Without these the server would re-derive against the defaults (1.2m beds, 0.45m paths) and quietly disagree with a form where the farmer had typed something else. */
|
|
16550
|
+
plantSpacingCm?: InputMaybe<Scalars['Float']['input']>;
|
|
16551
|
+
/** I-5 seed-rate result — total plants required. BOFF-6100: the server now derives this from the field and spacing and **overrides** what is sent, wherever it can derive it. The value here is still honoured for a field the bed calculators do not model (a greenhouse, an orchard) — there, a hand-entered figure is the only figure anyone has. */
|
|
16396
16552
|
plantsNeeded?: InputMaybe<Scalars['Int']['input']>;
|
|
16397
16553
|
priority?: InputMaybe<Scalars['String']['input']>;
|
|
16554
|
+
rowSpacingCm?: InputMaybe<Scalars['Float']['input']>;
|
|
16398
16555
|
/** Growing season. Must be one of: KHARIF, RABI, ZAID, PERENNIAL (case-insensitive). */
|
|
16399
16556
|
season: Scalars['String']['input'];
|
|
16400
|
-
/** I-5 seed-rate result — grams of seed required. */
|
|
16557
|
+
/** I-5 seed-rate result — grams of seed required. Server-derived where possible; see plantsNeeded. */
|
|
16401
16558
|
seedGrams?: InputMaybe<Scalars['Float']['input']>;
|
|
16402
16559
|
seedRequired?: InputMaybe<Scalars['Float']['input']>;
|
|
16403
|
-
/** I-5 seed-rate result — seedlings/transplants to raise. */
|
|
16560
|
+
/** I-5 seed-rate result — seedlings/transplants to raise. Server-derived where possible. */
|
|
16404
16561
|
seedlingsToRaise?: InputMaybe<Scalars['Int']['input']>;
|
|
16405
16562
|
/** Sow/nursery-start date (ISO); distinct from the transplant startDate. */
|
|
16406
16563
|
sowDate?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -16748,6 +16905,8 @@ export type CreateSchemeApplicationInput = {
|
|
|
16748
16905
|
context: ContextInput;
|
|
16749
16906
|
/** Must be true for a new submission; omitted values are rejected server-side. */
|
|
16750
16907
|
declarationAccepted?: InputMaybe<Scalars['Boolean']['input']>;
|
|
16908
|
+
/** Supporting evidence. When a scheme publishes `requiredDocuments`, attached evidence must cover that selected checklist; otherwise the default ownership, government ID and bank-detail slots apply. At most one document per slot (the last wins) and at most 12 raw entries are accepted. */
|
|
16909
|
+
documents?: InputMaybe<Array<SchemeApplicationDocumentInput>>;
|
|
16751
16910
|
/** Farm identity is validated server-side; whitespace-only or omitted values are rejected. */
|
|
16752
16911
|
farmName?: InputMaybe<Scalars['String']['input']>;
|
|
16753
16912
|
notes?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -17273,10 +17432,13 @@ export type CreateVehicleInput = {
|
|
|
17273
17432
|
fuelEfficiencyLPer100Km?: InputMaybe<Scalars['Float']['input']>;
|
|
17274
17433
|
fuelLevel?: InputMaybe<Scalars['Float']['input']>;
|
|
17275
17434
|
fuelType?: InputMaybe<FuelType>;
|
|
17435
|
+
lastServiceDate?: InputMaybe<Scalars['DateTime']['input']>;
|
|
17276
17436
|
licensePlate?: InputMaybe<Scalars['String']['input']>;
|
|
17277
17437
|
make?: InputMaybe<Scalars['String']['input']>;
|
|
17278
17438
|
mileage?: InputMaybe<Scalars['Float']['input']>;
|
|
17279
17439
|
model?: InputMaybe<Scalars['String']['input']>;
|
|
17440
|
+
nextServiceDueDate?: InputMaybe<Scalars['DateTime']['input']>;
|
|
17441
|
+
nextServiceDueMileage?: InputMaybe<Scalars['Float']['input']>;
|
|
17280
17442
|
ownershipType?: InputMaybe<Scalars['String']['input']>;
|
|
17281
17443
|
status?: InputMaybe<VehicleStatus>;
|
|
17282
17444
|
type: VehicleType;
|
|
@@ -18481,6 +18643,12 @@ export type CsaDelivery = {
|
|
|
18481
18643
|
notes?: Maybe<Scalars['String']['output']>;
|
|
18482
18644
|
notificationSentAt?: Maybe<Scalars['String']['output']>;
|
|
18483
18645
|
orderId?: Maybe<Scalars['ID']['output']>;
|
|
18646
|
+
/** When the linked Order settled, null until paid. */
|
|
18647
|
+
paidAt?: Maybe<Scalars['String']['output']>;
|
|
18648
|
+
/** Gateway-verified payment reference, null until the linked Order settles. */
|
|
18649
|
+
paymentReference?: Maybe<Scalars['String']['output']>;
|
|
18650
|
+
/** PENDING | PAID | FAILED — mirrored from the linked Order; the UI never writes this. */
|
|
18651
|
+
paymentStatus?: Maybe<Scalars['String']['output']>;
|
|
18484
18652
|
/** The location this box went to. Null for a home delivery. */
|
|
18485
18653
|
pickupLocationId?: Maybe<Scalars['ID']['output']>;
|
|
18486
18654
|
/** The stand's name AS IT WAS. Names get re-used between seasons, so a manifest reprinted for a past date and keyed on the live name could label the box with a different stand. */
|
|
@@ -19806,6 +19974,20 @@ export type DeadLetterQueueConnection = {
|
|
|
19806
19974
|
total: Scalars['Int']['output'];
|
|
19807
19975
|
};
|
|
19808
19976
|
|
|
19977
|
+
export type DecideAgronomyDecisionInput = {
|
|
19978
|
+
context: ContextInput;
|
|
19979
|
+
id: Scalars['ID']['input'];
|
|
19980
|
+
/** ACCEPTED | REJECTED. */
|
|
19981
|
+
verdict: Scalars['String']['input'];
|
|
19982
|
+
};
|
|
19983
|
+
|
|
19984
|
+
export type DecideHealthyBowlFarmRecommendationInput = {
|
|
19985
|
+
context: ContextInput;
|
|
19986
|
+
/** ACCEPTED | REJECTED | ESCALATED */
|
|
19987
|
+
decision: Scalars['String']['input'];
|
|
19988
|
+
id: Scalars['ID']['input'];
|
|
19989
|
+
};
|
|
19990
|
+
|
|
19809
19991
|
/** Returned when explicitly decrypting a secret value. */
|
|
19810
19992
|
export type DecryptedSecret = {
|
|
19811
19993
|
__typename?: 'DecryptedSecret';
|
|
@@ -19867,6 +20049,7 @@ export type DeliveryJobFilterInput = {
|
|
|
19867
20049
|
search?: InputMaybe<Scalars['String']['input']>;
|
|
19868
20050
|
status?: InputMaybe<DeliveryJobStatus>;
|
|
19869
20051
|
storeOrderId?: InputMaybe<Scalars['ID']['input']>;
|
|
20052
|
+
unassigned?: InputMaybe<Scalars['Boolean']['input']>;
|
|
19870
20053
|
vehicleId?: InputMaybe<Scalars['ID']['input']>;
|
|
19871
20054
|
};
|
|
19872
20055
|
|
|
@@ -20168,6 +20351,13 @@ export type DispatchHealthyBowlAuctionSweepInput = {
|
|
|
20168
20351
|
workspaceId: Scalars['ID']['input'];
|
|
20169
20352
|
};
|
|
20170
20353
|
|
|
20354
|
+
/** Authorization envelope for the anonymous consultation-reminder sweep callback. */
|
|
20355
|
+
export type DispatchHealthyBowlConsultReminderSweepInput = {
|
|
20356
|
+
/** Domain-separated HMAC-SHA256(INTERNAL_SERVICE_TOKEN, `consult-reminder:${workspaceId}`). */
|
|
20357
|
+
dispatchSecret: Scalars['String']['input'];
|
|
20358
|
+
workspaceId: Scalars['ID']['input'];
|
|
20359
|
+
};
|
|
20360
|
+
|
|
20171
20361
|
export type DispatchHealthyBowlCsaNotificationInput = {
|
|
20172
20362
|
/** CsaDelivery id. */
|
|
20173
20363
|
csaDeliveryId: Scalars['ID']['input'];
|
|
@@ -20280,6 +20470,7 @@ export type DraftMessage = {
|
|
|
20280
20470
|
};
|
|
20281
20471
|
|
|
20282
20472
|
export type DriverFilterInput = {
|
|
20473
|
+
licenseClass?: InputMaybe<Scalars['String']['input']>;
|
|
20283
20474
|
search?: InputMaybe<Scalars['String']['input']>;
|
|
20284
20475
|
status?: InputMaybe<DriverStatus>;
|
|
20285
20476
|
vehicleId?: InputMaybe<Scalars['ID']['input']>;
|
|
@@ -23873,6 +24064,8 @@ export type File = {
|
|
|
23873
24064
|
marketingWidth?: Maybe<Scalars['Int']['output']>;
|
|
23874
24065
|
mimeType: Scalars['String']['output'];
|
|
23875
24066
|
name: Scalars['String']['output'];
|
|
24067
|
+
/** Permanent, non-expiring CDN URL — only set when visibility is PUBLIC. Unlike downloadUrl (a fresh presigned URL on every query, ~1 hour TTL), this is safe to persist and embed permanently (e.g. a product catalog image), since it never expires and needs no re-signing. */
|
|
24068
|
+
publicUrl?: Maybe<Scalars['String']['output']>;
|
|
23876
24069
|
s3Bucket: Scalars['String']['output'];
|
|
23877
24070
|
s3Key: Scalars['String']['output'];
|
|
23878
24071
|
sha256Hash?: Maybe<Scalars['String']['output']>;
|
|
@@ -33553,6 +33746,25 @@ export type HealthyBowlAnimalGroup = {
|
|
|
33553
33746
|
updatedAt: Scalars['String']['output'];
|
|
33554
33747
|
};
|
|
33555
33748
|
|
|
33749
|
+
/** An animal's pedigree: ancestors walked up, offspring walked down. Both walks are breadth-first over `Animal.damId` / `Animal.sireId`, which are the only parentage edges that exist — `BreedingRecord` records offspring COUNTS and never points at a child row. */
|
|
33750
|
+
export type HealthyBowlAnimalPedigree = {
|
|
33751
|
+
__typename?: 'HealthyBowlAnimalPedigree';
|
|
33752
|
+
/** Ancestor depth actually applied after clamping (1..8). */
|
|
33753
|
+
ancestorDepth: Scalars['Int']['output'];
|
|
33754
|
+
/** Ancestors, nearest generation first; within a generation, ordered by `tagNumber`. Grouping dam before sire is the client's job — the server does not promise that order. */
|
|
33755
|
+
ancestors: Array<HealthyBowlPedigreeNode>;
|
|
33756
|
+
/** True when the walk re-entered an animal it had already visited. Reachable today, not hypothetical: `validateParentRef` compares birth order only when BOTH animals carry a `dateOfBirth`, and that column is nullable — so A-is-B's-dam and B-is-A's-dam both save cleanly on undated rows. The walk stops that branch rather than looping forever. */
|
|
33757
|
+
cycleDetected: Scalars['Boolean']['output'];
|
|
33758
|
+
/** Recorded offspring, oldest first. */
|
|
33759
|
+
offspring: Array<HealthyBowlOffspringNode>;
|
|
33760
|
+
/** Offspring depth actually applied after clamping (1..4). */
|
|
33761
|
+
offspringDepth: Scalars['Int']['output'];
|
|
33762
|
+
/** The animal the walk started from, at generation 0. */
|
|
33763
|
+
root: HealthyBowlPedigreeNode;
|
|
33764
|
+
/** True when a depth or node cap stopped the walk, so the tree shown is incomplete. Show it — a truncated pedigree is wrong with no other sign that it is wrong. */
|
|
33765
|
+
truncated: Scalars['Boolean']['output'];
|
|
33766
|
+
};
|
|
33767
|
+
|
|
33556
33768
|
/** Per-animal medication-withdrawal roll-up (reused from BOFF-2885), for the compliance badge. */
|
|
33557
33769
|
export type HealthyBowlAnimalWithdrawalBadge = {
|
|
33558
33770
|
__typename?: 'HealthyBowlAnimalWithdrawalBadge';
|
|
@@ -34174,6 +34386,27 @@ export type HealthyBowlCostCenter = {
|
|
|
34174
34386
|
yieldUnit: Scalars['String']['output'];
|
|
34175
34387
|
};
|
|
34176
34388
|
|
|
34389
|
+
export type HealthyBowlCrew = {
|
|
34390
|
+
__typename?: 'HealthyBowlCrew';
|
|
34391
|
+
createdAt: Scalars['String']['output'];
|
|
34392
|
+
id: Scalars['ID']['output'];
|
|
34393
|
+
isActive: Scalars['Boolean']['output'];
|
|
34394
|
+
leadWorkerId?: Maybe<Scalars['ID']['output']>;
|
|
34395
|
+
name: Scalars['String']['output'];
|
|
34396
|
+
workerIds: Array<Scalars['ID']['output']>;
|
|
34397
|
+
};
|
|
34398
|
+
|
|
34399
|
+
export type HealthyBowlCrewTimesheet = {
|
|
34400
|
+
__typename?: 'HealthyBowlCrewTimesheet';
|
|
34401
|
+
crewId: Scalars['ID']['output'];
|
|
34402
|
+
crewName: Scalars['String']['output'];
|
|
34403
|
+
rows: Array<HealthyBowlWeeklyTimesheetRow>;
|
|
34404
|
+
totalCost: Scalars['Float']['output'];
|
|
34405
|
+
totalHours: Scalars['Float']['output'];
|
|
34406
|
+
weekEnd: Scalars['String']['output'];
|
|
34407
|
+
weekStart: Scalars['String']['output'];
|
|
34408
|
+
};
|
|
34409
|
+
|
|
34177
34410
|
export type HealthyBowlCropProfitability = {
|
|
34178
34411
|
__typename?: 'HealthyBowlCropProfitability';
|
|
34179
34412
|
code: Scalars['String']['output'];
|
|
@@ -34275,18 +34508,40 @@ export type HealthyBowlDueSoon = {
|
|
|
34275
34508
|
tagNumber?: Maybe<Scalars['String']['output']>;
|
|
34276
34509
|
};
|
|
34277
34510
|
|
|
34511
|
+
export type HealthyBowlExpertAvailabilityInput = {
|
|
34512
|
+
consultantId: Scalars['String']['input'];
|
|
34513
|
+
/** How many days forward. Defaults to 14, capped at 60 — a farmer picking a time does not scroll a year. */
|
|
34514
|
+
days?: InputMaybe<Scalars['Int']['input']>;
|
|
34515
|
+
/** First day to offer, ISO. Defaults to today. */
|
|
34516
|
+
from?: InputMaybe<Scalars['String']['input']>;
|
|
34517
|
+
};
|
|
34518
|
+
|
|
34278
34519
|
export type HealthyBowlFarmRecommendation = {
|
|
34279
34520
|
__typename?: 'HealthyBowlFarmRecommendation';
|
|
34280
34521
|
authorActorId: Scalars['String']['output'];
|
|
34522
|
+
/** BOFF-3676 — HUMAN or MODEL. A farmer deciding whether to act on advice is entitled to know whether a person or a model wrote it. */
|
|
34523
|
+
authorKind: Scalars['String']['output'];
|
|
34281
34524
|
authorName?: Maybe<Scalars['String']['output']>;
|
|
34525
|
+
/** Model confidence in [0,1]. **Null means the model reported none** — it is never defaulted to a number, because a fabricated confidence is what a decision card exists to prevent. */
|
|
34526
|
+
confidence?: Maybe<Scalars['Float']['output']>;
|
|
34282
34527
|
createdAt: Scalars['String']['output'];
|
|
34528
|
+
decidedAt?: Maybe<Scalars['String']['output']>;
|
|
34529
|
+
decidedBy?: Maybe<Scalars['String']['output']>;
|
|
34530
|
+
/** ACCEPTED | REJECTED | ESCALATED — the human's verdict. Null until someone decides. */
|
|
34531
|
+
decision?: Maybe<Scalars['String']['output']>;
|
|
34283
34532
|
detail: Scalars['String']['output'];
|
|
34284
34533
|
domain: Scalars['String']['output'];
|
|
34285
34534
|
id: Scalars['ID']['output'];
|
|
34535
|
+
/** The model that produced it, when authorKind is MODEL. */
|
|
34536
|
+
modelName?: Maybe<Scalars['String']['output']>;
|
|
34286
34537
|
priority: Scalars['String']['output'];
|
|
34538
|
+
/** Why the model suggested this. A recommendation with no rationale is one a farmer cannot evaluate. */
|
|
34539
|
+
rationale?: Maybe<Scalars['String']['output']>;
|
|
34287
34540
|
status: Scalars['String']['output'];
|
|
34288
34541
|
title: Scalars['String']['output'];
|
|
34289
34542
|
updatedAt: Scalars['String']['output'];
|
|
34543
|
+
/** Caveats the card should show, computed on read — e.g. a model suggestion with no reasoning, or with no reported confidence. Empty for human-authored advice. */
|
|
34544
|
+
warnings: Array<Scalars['String']['output']>;
|
|
34290
34545
|
workspaceId: Scalars['ID']['output'];
|
|
34291
34546
|
};
|
|
34292
34547
|
|
|
@@ -34450,6 +34705,14 @@ export type HealthyBowlGeneralLedgerRow = {
|
|
|
34450
34705
|
runningBalance: Scalars['Float']['output'];
|
|
34451
34706
|
};
|
|
34452
34707
|
|
|
34708
|
+
/** The report types the generator can build today (BOFF-6022). Deliberately NOT every member of the Prisma `AnalyticsReportType` enum. LIVESTOCK, WEATHER and MARKETPLACE exist on the model and have no builder, so listing them here would let a client send a schema-valid value that is refused at runtime — the "not available yet" toast this ticket removes, one layer down. Adding a member later is an additive schema change and safe. */
|
|
34709
|
+
export enum HealthyBowlGeneratableReportType {
|
|
34710
|
+
/** Harvest yield by crop, over recorded harvests. */
|
|
34711
|
+
Crop = 'CROP',
|
|
34712
|
+
/** Cost by crop, over posted ledger lines. */
|
|
34713
|
+
Financial = 'FINANCIAL'
|
|
34714
|
+
}
|
|
34715
|
+
|
|
34453
34716
|
export type HealthyBowlGovernmentDataPayload = {
|
|
34454
34717
|
__typename?: 'HealthyBowlGovernmentDataPayload';
|
|
34455
34718
|
activity: Array<GovernmentActivityItem>;
|
|
@@ -34609,6 +34872,7 @@ export type HealthyBowlHerdComplianceSummary = {
|
|
|
34609
34872
|
animalsInWithdrawal: Scalars['Int']['output'];
|
|
34610
34873
|
/** e.g. '2 animals in medication withdrawal — do not sell milk'. Empty when none are withdrawn. */
|
|
34611
34874
|
complianceMessage: Scalars['String']['output'];
|
|
34875
|
+
/** Animals MATCHING the current `groupId`/`search` filters — not the herd total. The herd totals are on `groups[].animalCount`. */
|
|
34612
34876
|
totalAnimals: Scalars['Int']['output'];
|
|
34613
34877
|
};
|
|
34614
34878
|
|
|
@@ -34645,6 +34909,8 @@ export type HealthyBowlHerdDepthRow = {
|
|
|
34645
34909
|
/** Average daily gain (kg/day) from weight history; null with < 2 weight records. */
|
|
34646
34910
|
adgKgPerDay?: Maybe<Scalars['Float']['output']>;
|
|
34647
34911
|
animalId: Scalars['ID']['output'];
|
|
34912
|
+
/** True when this animal has left the herd (soft-deleted). Only ever true for a caller that passed `includeArchived: true` — see `healthyBowlHerdDepth`. Show the row muted rather than dropping it: a culled or sold animal is still a valid dam or sire (BOFF-6011), which is the whole reason these rows can be asked for. */
|
|
34913
|
+
archived: Scalars['Boolean']['output'];
|
|
34648
34914
|
bodyConditionScore?: Maybe<Scalars['Float']['output']>;
|
|
34649
34915
|
eidTag?: Maybe<Scalars['String']['output']>;
|
|
34650
34916
|
groupId?: Maybe<Scalars['ID']['output']>;
|
|
@@ -34664,6 +34930,8 @@ export type HealthyBowlHerdDepthView = {
|
|
|
34664
34930
|
groups: Array<HealthyBowlAnimalGroup>;
|
|
34665
34931
|
rows: Array<HealthyBowlHerdDepthRow>;
|
|
34666
34932
|
summary: HealthyBowlHerdComplianceSummary;
|
|
34933
|
+
/** True when the read hit a row cap and this payload is incomplete — either the row list was cut at the page size, or the herd is larger than the group counts could read. Show it: a herd list that quietly stops being the herd is wrong with no other sign that it is wrong. */
|
|
34934
|
+
truncated: Scalars['Boolean']['output'];
|
|
34667
34935
|
};
|
|
34668
34936
|
|
|
34669
34937
|
/** Output per head for one production type measured in one unit. Never summed across types or units. `ProductionRecord.unit` is free text and the types are not commensurable — litres of milk, dozens of eggs and kilograms of wool have no common total, and unlike feed there is no mass basis to convert onto. */
|
|
@@ -35041,6 +35309,42 @@ export type HealthyBowlJournalLineInput = {
|
|
|
35041
35309
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
35042
35310
|
};
|
|
35043
35311
|
|
|
35312
|
+
export type HealthyBowlLabourEntry = {
|
|
35313
|
+
__typename?: 'HealthyBowlLabourEntry';
|
|
35314
|
+
computedCost: Scalars['Float']['output'];
|
|
35315
|
+
/** Mandatory: cost-by-crop ignores journal lines without it. */
|
|
35316
|
+
costCenterId: Scalars['ID']['output'];
|
|
35317
|
+
crewId?: Maybe<Scalars['ID']['output']>;
|
|
35318
|
+
cropId?: Maybe<Scalars['ID']['output']>;
|
|
35319
|
+
date: Scalars['String']['output'];
|
|
35320
|
+
fieldId?: Maybe<Scalars['ID']['output']>;
|
|
35321
|
+
hours: Scalars['Float']['output'];
|
|
35322
|
+
id: Scalars['ID']['output'];
|
|
35323
|
+
journalEntryId?: Maybe<Scalars['ID']['output']>;
|
|
35324
|
+
note?: Maybe<Scalars['String']['output']>;
|
|
35325
|
+
quantity?: Maybe<Scalars['Float']['output']>;
|
|
35326
|
+
rateAmount: Scalars['Float']['output'];
|
|
35327
|
+
/** DAY | HOUR | PIECE */
|
|
35328
|
+
rateType: Scalars['String']['output'];
|
|
35329
|
+
/** DRAFT | APPROVED. Only APPROVED has reached the ledger. */
|
|
35330
|
+
status: Scalars['String']['output'];
|
|
35331
|
+
/** Opaque PlanMagnet task id; not a HealthyBowl UUID. */
|
|
35332
|
+
taskId?: Maybe<Scalars['String']['output']>;
|
|
35333
|
+
workerId: Scalars['ID']['output'];
|
|
35334
|
+
workerName: Scalars['String']['output'];
|
|
35335
|
+
};
|
|
35336
|
+
|
|
35337
|
+
export type HealthyBowlLabourSummary = {
|
|
35338
|
+
__typename?: 'HealthyBowlLabourSummary';
|
|
35339
|
+
approvedEntries: Scalars['Int']['output'];
|
|
35340
|
+
draftEntries: Scalars['Int']['output'];
|
|
35341
|
+
/** Cost from APPROVED entries only; this agrees with the ledger. */
|
|
35342
|
+
totalCost: Scalars['Float']['output'];
|
|
35343
|
+
totalEntries: Scalars['Int']['output'];
|
|
35344
|
+
/** Hours from APPROVED entries only; draft work is not yet financial history. */
|
|
35345
|
+
totalHours: Scalars['Float']['output'];
|
|
35346
|
+
};
|
|
35347
|
+
|
|
35044
35348
|
export type HealthyBowlLedgerAccount = {
|
|
35045
35349
|
__typename?: 'HealthyBowlLedgerAccount';
|
|
35046
35350
|
/** ASSET | LIABILITY | EQUITY | INCOME | EXPENSE */
|
|
@@ -35191,6 +35495,9 @@ export type HealthyBowlLoanFacilitation = {
|
|
|
35191
35495
|
communityFunded: Scalars['Boolean']['output'];
|
|
35192
35496
|
createdAt: Scalars['String']['output'];
|
|
35193
35497
|
currency: Scalars['String']['output'];
|
|
35498
|
+
/** BOFF-6077 — what the lender has AUTHORISED for milestone release, and what has been released. Authorisation figures, not a balance. Nothing holds this money; see `HealthyBowlLoanMilestone`. */
|
|
35499
|
+
escrowCommitted: Scalars['Float']['output'];
|
|
35500
|
+
escrowReleased: Scalars['Float']['output'];
|
|
35194
35501
|
expiresAt?: Maybe<Scalars['String']['output']>;
|
|
35195
35502
|
financierActorId?: Maybe<Scalars['String']['output']>;
|
|
35196
35503
|
/** FinancierAccessGrant that backs this loan's consent (time-bounded, revocable). */
|
|
@@ -35246,6 +35553,27 @@ export type HealthyBowlLoanInstallment = {
|
|
|
35246
35553
|
totalDue: Scalars['String']['output'];
|
|
35247
35554
|
};
|
|
35248
35555
|
|
|
35556
|
+
/** BOFF-6077 — one tranche of a facilitated loan's release schedule. ### Read this before writing UI copy This is an **authorisation** record, not custody. HealthyBowl holds no money and `global-billing-svc` has no hold/capture primitive, so a RELEASED milestone means "the farm proved the condition and the lender's release is on record" — **not** that funds moved. Labelling it "escrow held" or showing it as a balance would put a claim on screen the system cannot honour. The money leg is BOFF-6076's disbursement rail. */
|
|
35557
|
+
export type HealthyBowlLoanMilestone = {
|
|
35558
|
+
__typename?: 'HealthyBowlLoanMilestone';
|
|
35559
|
+
createdAt: Scalars['String']['output'];
|
|
35560
|
+
description?: Maybe<Scalars['String']['output']>;
|
|
35561
|
+
evidenceId?: Maybe<Scalars['ID']['output']>;
|
|
35562
|
+
/** HARVEST | PLANTING_ACTIVITY — the kind of farm record that proves this milestone. */
|
|
35563
|
+
evidenceType?: Maybe<Scalars['String']['output']>;
|
|
35564
|
+
id: Scalars['ID']['output'];
|
|
35565
|
+
label: Scalars['String']['output'];
|
|
35566
|
+
loanId: Scalars['ID']['output'];
|
|
35567
|
+
releaseAmount: Scalars['Float']['output'];
|
|
35568
|
+
releasedAt?: Maybe<Scalars['String']['output']>;
|
|
35569
|
+
releasedBy?: Maybe<Scalars['String']['output']>;
|
|
35570
|
+
/** 1-based position in the release sequence. */
|
|
35571
|
+
sequence: Scalars['Int']['output'];
|
|
35572
|
+
/** PENDING | RELEASED | CANCELLED */
|
|
35573
|
+
status: Scalars['String']['output'];
|
|
35574
|
+
updatedAt: Scalars['String']['output'];
|
|
35575
|
+
};
|
|
35576
|
+
|
|
35249
35577
|
/** An immutable allocation for a repayment completed outside HealthyBowl; POSTED may only become VOID. */
|
|
35250
35578
|
export type HealthyBowlLoanRepayment = {
|
|
35251
35579
|
__typename?: 'HealthyBowlLoanRepayment';
|
|
@@ -35389,6 +35717,26 @@ export type HealthyBowlNotifyMentionInput = {
|
|
|
35389
35717
|
taskTitle?: InputMaybe<Scalars['String']['input']>;
|
|
35390
35718
|
};
|
|
35391
35719
|
|
|
35720
|
+
/** One recorded offspring of the root animal. */
|
|
35721
|
+
export type HealthyBowlOffspringNode = {
|
|
35722
|
+
__typename?: 'HealthyBowlOffspringNode';
|
|
35723
|
+
animalId: Scalars['ID']['output'];
|
|
35724
|
+
/** Offspring are read live-only, so this is always false. Present for symmetry with the ancestors. */
|
|
35725
|
+
archived: Scalars['Boolean']['output'];
|
|
35726
|
+
dateOfBirth?: Maybe<Scalars['String']['output']>;
|
|
35727
|
+
gender: Scalars['String']['output'];
|
|
35728
|
+
generation: Scalars['Int']['output'];
|
|
35729
|
+
name: Scalars['String']['output'];
|
|
35730
|
+
/** The immediately preceding descendant in the walk. Null at generation 1, where the root is implicit. */
|
|
35731
|
+
parentAnimalId?: Maybe<Scalars['ID']['output']>;
|
|
35732
|
+
/** All immediately preceding descendants that match this node's dam/sire links. Empty at generation 1. */
|
|
35733
|
+
parentAnimalIds: Array<Scalars['ID']['output']>;
|
|
35734
|
+
tagNumber: Scalars['String']['output'];
|
|
35735
|
+
type: Scalars['String']['output'];
|
|
35736
|
+
/** DAM | SIRE — the parent link followed to reach this node: root for direct offspring, or its preceding descendant later in the walk. BOTH when both links match. */
|
|
35737
|
+
viaParent: Scalars['String']['output'];
|
|
35738
|
+
};
|
|
35739
|
+
|
|
35392
35740
|
/** Everything the client needs to open the payment provider's checkout for an order. Returned by checkoutHealthyBowlOrder; the amounts are billing's (tax is computed there, not here). */
|
|
35393
35741
|
export type HealthyBowlOrderCheckout = {
|
|
35394
35742
|
__typename?: 'HealthyBowlOrderCheckout';
|
|
@@ -35500,6 +35848,31 @@ export type HealthyBowlPaginationInput = {
|
|
|
35500
35848
|
sortOrder?: InputMaybe<Scalars['String']['input']>;
|
|
35501
35849
|
};
|
|
35502
35850
|
|
|
35851
|
+
/** One animal in a pedigree, seen from the root animal. `generation` counts hops from the root: 1 = a parent, 2 = a grandparent. The root itself is generation 0. */
|
|
35852
|
+
export type HealthyBowlPedigreeNode = {
|
|
35853
|
+
__typename?: 'HealthyBowlPedigreeNode';
|
|
35854
|
+
animalId: Scalars['ID']['output'];
|
|
35855
|
+
/** True when this animal has left the herd (soft-deleted). The branch is still returned: a culled parent is still the parent (BOFF-6011). Render it greyed and NOT as a link — `healthyBowlAnimalDepth` filters `deletedAt`, so navigating to an archived animal's page dead-ends on NOT_FOUND. */
|
|
35856
|
+
archived: Scalars['Boolean']['output'];
|
|
35857
|
+
breed?: Maybe<Scalars['String']['output']>;
|
|
35858
|
+
/** ONE of the animals a generation closer to the root that this node is a parent of. Null at generation 1 and on the root. Deliberately not "the" child: a line-bred herd reuses the same bull on both sides, and this walk emits each ancestor once. Read `childAnimalIds` for every edge — this field keeps only the first, for backward compatibility. */
|
|
35859
|
+
childAnimalId?: Maybe<Scalars['ID']['output']>;
|
|
35860
|
+
/** Every descendant edge this ancestor was reached by, not just the first. Line breeding makes one animal the parent of several others in the same tree — a bull that sired both the dam and the sire of the root is ONE node with TWO child edges. `childAnimalId` keeps only the first for backward compatibility; read this to render the full genealogy. Empty at generation 1, where the child is the root and so implicit — the same boundary `parentAnimalIds` keeps for direct offspring. */
|
|
35861
|
+
childAnimalIds: Array<Scalars['ID']['output']>;
|
|
35862
|
+
/** ISO date, or null — `Animal.dateOfBirth` is nullable and a missing date is not a claim. */
|
|
35863
|
+
dateOfBirth?: Maybe<Scalars['String']['output']>;
|
|
35864
|
+
/** MALE | FEMALE. */
|
|
35865
|
+
gender: Scalars['String']['output'];
|
|
35866
|
+
/** Hops from the root animal. 0 on the root, >= 1 on every ancestor. */
|
|
35867
|
+
generation: Scalars['Int']['output'];
|
|
35868
|
+
name: Scalars['String']['output'];
|
|
35869
|
+
/** DAM | SIRE — which side of THIS node's own child it sits on. SELF on the root. */
|
|
35870
|
+
relation: Scalars['String']['output'];
|
|
35871
|
+
tagNumber: Scalars['String']['output'];
|
|
35872
|
+
/** Species (CATTLE|BUFFALO|GOAT|SHEEP|PIG|POULTRY). */
|
|
35873
|
+
type: Scalars['String']['output'];
|
|
35874
|
+
};
|
|
35875
|
+
|
|
35503
35876
|
export type HealthyBowlPestDataPayload = {
|
|
35504
35877
|
__typename?: 'HealthyBowlPestDataPayload';
|
|
35505
35878
|
pestIssues: Array<PestIssue>;
|
|
@@ -35658,6 +36031,52 @@ export type HealthyBowlPlannedVsSpentPoint = {
|
|
|
35658
36031
|
spent: Scalars['Float']['output'];
|
|
35659
36032
|
};
|
|
35660
36033
|
|
|
36034
|
+
/** Bed-geometry capacity for a field (BOFF-6100). */
|
|
36035
|
+
export type HealthyBowlPlantingCapacity = {
|
|
36036
|
+
__typename?: 'HealthyBowlPlantingCapacity';
|
|
36037
|
+
areaSqm: Scalars['Float']['output'];
|
|
36038
|
+
bedCount: Scalars['Int']['output'];
|
|
36039
|
+
bedLengthM: Scalars['Float']['output'];
|
|
36040
|
+
bedWidthM: Scalars['Float']['output'];
|
|
36041
|
+
cultivableAreaSqm: Scalars['Float']['output'];
|
|
36042
|
+
densityPlantsPerSqm: Scalars['Float']['output'];
|
|
36043
|
+
pathWidthM: Scalars['Float']['output'];
|
|
36044
|
+
plantSpacingCm: Scalars['Float']['output'];
|
|
36045
|
+
plantsPerBed: Scalars['Int']['output'];
|
|
36046
|
+
plantsPerRow: Scalars['Int']['output'];
|
|
36047
|
+
rowSpacingCm: Scalars['Float']['output'];
|
|
36048
|
+
rowsPerBed: Scalars['Int']['output'];
|
|
36049
|
+
seedlingTarget: Scalars['Int']['output'];
|
|
36050
|
+
totalPlants: Scalars['Int']['output'];
|
|
36051
|
+
};
|
|
36052
|
+
|
|
36053
|
+
/** The estimate, or a reasoned refusal (BOFF-6100). A greenhouse, orchard or pasture is not planted in beds, so `appliesToBedGeometry` is false and both payloads are null — **not zeroed**. A farmer reading "0 seeds required" orders nothing. */
|
|
36054
|
+
export type HealthyBowlPlantingEstimate = {
|
|
36055
|
+
__typename?: 'HealthyBowlPlantingEstimate';
|
|
36056
|
+
appliesToBedGeometry: Scalars['Boolean']['output'];
|
|
36057
|
+
capacity?: Maybe<HealthyBowlPlantingCapacity>;
|
|
36058
|
+
/** Why there are no numbers. Null when the estimate is real. */
|
|
36059
|
+
notApplicableReason?: Maybe<Scalars['String']['output']>;
|
|
36060
|
+
seedRate?: Maybe<HealthyBowlSeedRate>;
|
|
36061
|
+
/** The spacing preset actually used, so the caller can show what was assumed. */
|
|
36062
|
+
spacingPresetLabel: Scalars['String']['output'];
|
|
36063
|
+
};
|
|
36064
|
+
|
|
36065
|
+
/** BOFF-6100 — inputs for a server-derived planting estimate. Only `fieldId` is required: area, unit and grow-location type come off the field, and spacing comes from the catalog entry or a crop-name preset. Everything else overrides, in that order, so a farmer who knows their own bed layout is not overruled by a lookup table. */
|
|
36066
|
+
export type HealthyBowlPlantingEstimateInput = {
|
|
36067
|
+
/** Optional unsaved drawn-boundary area in the Field's stored unit. Used only when positive; never persisted by this estimate read. */
|
|
36068
|
+
areaOverride?: InputMaybe<Scalars['Float']['input']>;
|
|
36069
|
+
bedWidthM?: InputMaybe<Scalars['Float']['input']>;
|
|
36070
|
+
/** Crop whose name/category/variety selects a spacing preset when no catalog entry is given. */
|
|
36071
|
+
cropId?: InputMaybe<Scalars['ID']['input']>;
|
|
36072
|
+
fieldId: Scalars['ID']['input'];
|
|
36073
|
+
pathWidthM?: InputMaybe<Scalars['Float']['input']>;
|
|
36074
|
+
/** Master Plant List entry, for seeds/gram, germination rate and its recorded spacing. */
|
|
36075
|
+
plantCatalogId?: InputMaybe<Scalars['ID']['input']>;
|
|
36076
|
+
plantSpacingCm?: InputMaybe<Scalars['Float']['input']>;
|
|
36077
|
+
rowSpacingCm?: InputMaybe<Scalars['Float']['input']>;
|
|
36078
|
+
};
|
|
36079
|
+
|
|
35661
36080
|
export type HealthyBowlPooledCropVolume = {
|
|
35662
36081
|
__typename?: 'HealthyBowlPooledCropVolume';
|
|
35663
36082
|
crop: Scalars['String']['output'];
|
|
@@ -35834,6 +36253,16 @@ export type HealthyBowlSavedTraceLabel = {
|
|
|
35834
36253
|
fileName: Scalars['String']['output'];
|
|
35835
36254
|
};
|
|
35836
36255
|
|
|
36256
|
+
/** Seed and nursery quantities for a plant target (BOFF-6100). */
|
|
36257
|
+
export type HealthyBowlSeedRate = {
|
|
36258
|
+
__typename?: 'HealthyBowlSeedRate';
|
|
36259
|
+
/** Null when the variety has no seeds-per-gram recorded. A guessed weight is worse than none. */
|
|
36260
|
+
seedGrams?: Maybe<Scalars['Float']['output']>;
|
|
36261
|
+
seedlingsToRaise: Scalars['Int']['output'];
|
|
36262
|
+
seedsNeeded: Scalars['Int']['output'];
|
|
36263
|
+
trays?: Maybe<Scalars['Int']['output']>;
|
|
36264
|
+
};
|
|
36265
|
+
|
|
35837
36266
|
export type HealthyBowlSettlementDeductionInput = {
|
|
35838
36267
|
amount: Scalars['Float']['input'];
|
|
35839
36268
|
label: Scalars['String']['input'];
|
|
@@ -36219,6 +36648,17 @@ export type HealthyBowlWeatherDataPayload = {
|
|
|
36219
36648
|
weather: WeatherData;
|
|
36220
36649
|
};
|
|
36221
36650
|
|
|
36651
|
+
export type HealthyBowlWeeklyTimesheetRow = {
|
|
36652
|
+
__typename?: 'HealthyBowlWeeklyTimesheetRow';
|
|
36653
|
+
/** Seven buckets, Monday first. */
|
|
36654
|
+
hoursByDay: Array<Scalars['Float']['output']>;
|
|
36655
|
+
/** Approved labour only, so this agrees with the ledger. */
|
|
36656
|
+
totalCost: Scalars['Float']['output'];
|
|
36657
|
+
totalHours: Scalars['Float']['output'];
|
|
36658
|
+
workerId: Scalars['ID']['output'];
|
|
36659
|
+
workerName: Scalars['String']['output'];
|
|
36660
|
+
};
|
|
36661
|
+
|
|
36222
36662
|
/** A single weight measurement in an animal's history. */
|
|
36223
36663
|
export type HealthyBowlWeightRecord = {
|
|
36224
36664
|
__typename?: 'HealthyBowlWeightRecord';
|
|
@@ -36232,6 +36672,23 @@ export type HealthyBowlWeightRecord = {
|
|
|
36232
36672
|
weightKg: Scalars['Float']['output'];
|
|
36233
36673
|
};
|
|
36234
36674
|
|
|
36675
|
+
/** Labour, crews and costed timesheets (BOFF-6024). Workers need no email or login: a seasonal farm hand must be recordable even when they never sign into the platform. Approval posts through the existing accounting provider; this module NEVER writes a journal row directly. */
|
|
36676
|
+
export type HealthyBowlWorker = {
|
|
36677
|
+
__typename?: 'HealthyBowlWorker';
|
|
36678
|
+
createdAt: Scalars['String']['output'];
|
|
36679
|
+
dailyWage?: Maybe<Scalars['Float']['output']>;
|
|
36680
|
+
/** PERMANENT | SEASONAL | CONTRACT | FAMILY | GIG */
|
|
36681
|
+
employmentType: Scalars['String']['output'];
|
|
36682
|
+
hourlyRate?: Maybe<Scalars['Float']['output']>;
|
|
36683
|
+
id: Scalars['ID']['output'];
|
|
36684
|
+
isActive: Scalars['Boolean']['output'];
|
|
36685
|
+
linkedActorId?: Maybe<Scalars['String']['output']>;
|
|
36686
|
+
name: Scalars['String']['output'];
|
|
36687
|
+
phone?: Maybe<Scalars['String']['output']>;
|
|
36688
|
+
piecePrice?: Maybe<Scalars['Float']['output']>;
|
|
36689
|
+
skills: Array<Scalars['String']['output']>;
|
|
36690
|
+
};
|
|
36691
|
+
|
|
36235
36692
|
/** A single (bucket-key -> aggregate) row for a device/territory/language breakdown. */
|
|
36236
36693
|
export type HokAnalyticsBucket = {
|
|
36237
36694
|
__typename?: 'HokAnalyticsBucket';
|
|
@@ -40633,6 +41090,7 @@ export type InvalidateDataSinkCacheResult = {
|
|
|
40633
41090
|
export type InventoryFilterInput = {
|
|
40634
41091
|
cargoItemId?: InputMaybe<Scalars['ID']['input']>;
|
|
40635
41092
|
locationId?: InputMaybe<Scalars['ID']['input']>;
|
|
41093
|
+
lowStock?: InputMaybe<Scalars['Boolean']['input']>;
|
|
40636
41094
|
search?: InputMaybe<Scalars['String']['input']>;
|
|
40637
41095
|
warehouseId?: InputMaybe<Scalars['ID']['input']>;
|
|
40638
41096
|
};
|
|
@@ -41163,6 +41621,8 @@ export type IotThresholdRuleInput = {
|
|
|
41163
41621
|
/** A soil/weather-conditional automation rule for an irrigation schedule (Phase B — "EXTEND FluidGrids"). HB owns the thresholds; wspace-workflow-svc (FluidGrids) is provisioned per-rule to fire the cron and call back into HB. */
|
|
41164
41622
|
export type IrrigationAutomation = {
|
|
41165
41623
|
__typename?: 'IrrigationAutomation';
|
|
41624
|
+
/** BOFF-6123 — raise a Farm Tasks card when a run actually waters this field. Off by default. A skipped run raises nothing: that is the automation deciding there is no work, and a card for it would train farmers to ignore the board. */
|
|
41625
|
+
autoTaskEnabled: Scalars['Boolean']['output'];
|
|
41166
41626
|
fieldId: Scalars['ID']['output'];
|
|
41167
41627
|
id: Scalars['ID']['output'];
|
|
41168
41628
|
/** Timestamp of the last evaluation as an ISO-8601 string. */
|
|
@@ -43262,8 +43722,14 @@ export type ListWorkflowDefinitionsInput = {
|
|
|
43262
43722
|
|
|
43263
43723
|
/** Input for listing runs */
|
|
43264
43724
|
export type ListWorkflowRunsInput = {
|
|
43725
|
+
/** Filter runs created at-or-before this instant (inclusive). Bound to `createdAt` on WorkflowRun. */
|
|
43726
|
+
endDate?: InputMaybe<Scalars['DateTime']['input']>;
|
|
43265
43727
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
43266
43728
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
43729
|
+
/** Free-text filter for the Runs screen's search box. Case-insensitive; matches a run whose id starts with the term, or whose workflow key or workflow name contains it. Blank or whitespace-only is treated as no filter. */
|
|
43730
|
+
search?: InputMaybe<Scalars['String']['input']>;
|
|
43731
|
+
/** Filter runs created at-or-after this instant (inclusive). Bound to `createdAt` on WorkflowRun. */
|
|
43732
|
+
startDate?: InputMaybe<Scalars['DateTime']['input']>;
|
|
43267
43733
|
status?: InputMaybe<RunStatus>;
|
|
43268
43734
|
workflowKey?: InputMaybe<Scalars['String']['input']>;
|
|
43269
43735
|
};
|
|
@@ -43365,6 +43831,22 @@ export type LogFilterInput = {
|
|
|
43365
43831
|
startDate?: InputMaybe<Scalars['DateTime']['input']>;
|
|
43366
43832
|
};
|
|
43367
43833
|
|
|
43834
|
+
export type LogHealthyBowlLabourEntryInput = {
|
|
43835
|
+
context: ContextInput;
|
|
43836
|
+
costCenterId: Scalars['ID']['input'];
|
|
43837
|
+
crewId?: InputMaybe<Scalars['ID']['input']>;
|
|
43838
|
+
cropId?: InputMaybe<Scalars['ID']['input']>;
|
|
43839
|
+
date?: InputMaybe<Scalars['String']['input']>;
|
|
43840
|
+
fieldId?: InputMaybe<Scalars['ID']['input']>;
|
|
43841
|
+
hours?: InputMaybe<Scalars['Float']['input']>;
|
|
43842
|
+
note?: InputMaybe<Scalars['String']['input']>;
|
|
43843
|
+
quantity?: InputMaybe<Scalars['Float']['input']>;
|
|
43844
|
+
rateAmount?: InputMaybe<Scalars['Float']['input']>;
|
|
43845
|
+
rateType?: InputMaybe<Scalars['String']['input']>;
|
|
43846
|
+
taskId?: InputMaybe<Scalars['String']['input']>;
|
|
43847
|
+
workerId: Scalars['ID']['input'];
|
|
43848
|
+
};
|
|
43849
|
+
|
|
43368
43850
|
export enum LogLevel {
|
|
43369
43851
|
Debug = 'DEBUG',
|
|
43370
43852
|
Error = 'ERROR',
|
|
@@ -45481,6 +45963,14 @@ export type MtwAnalyticsSeries = {
|
|
|
45481
45963
|
revenueTrend: Array<MtwAnalyticsPoint>;
|
|
45482
45964
|
};
|
|
45483
45965
|
|
|
45966
|
+
/** Ranked vehicles and drivers that can take a route right now, best first. */
|
|
45967
|
+
export type MtwAssignmentSuggestions = {
|
|
45968
|
+
__typename?: 'MtwAssignmentSuggestions';
|
|
45969
|
+
drivers: Array<MtwDriverSuggestion>;
|
|
45970
|
+
routeId: Scalars['ID']['output'];
|
|
45971
|
+
vehicles: Array<MtwVehicleSuggestion>;
|
|
45972
|
+
};
|
|
45973
|
+
|
|
45484
45974
|
/** MoveTheWheels-owned cargo/item master used for warehouse inventory and shipment payloads. This is not a sellable storefront product; commerce SKUs must live in global-store-svc (StoreProduct) and be referenced by storeProductId when needed. */
|
|
45485
45975
|
export type MtwCargoItem = {
|
|
45486
45976
|
__typename?: 'MtwCargoItem';
|
|
@@ -45506,6 +45996,31 @@ export type MtwCargoItem = {
|
|
|
45506
45996
|
workspaceId: Scalars['ID']['output'];
|
|
45507
45997
|
};
|
|
45508
45998
|
|
|
45999
|
+
export type MtwCargoItemStats = {
|
|
46000
|
+
__typename?: 'MtwCargoItemStats';
|
|
46001
|
+
specialHandling: Scalars['Int']['output'];
|
|
46002
|
+
temperatureControlled: Scalars['Int']['output'];
|
|
46003
|
+
total: Scalars['Int']['output'];
|
|
46004
|
+
};
|
|
46005
|
+
|
|
46006
|
+
/** How one carrier fared for a quote request. */
|
|
46007
|
+
export type MtwCarrierOutcome = {
|
|
46008
|
+
__typename?: 'MtwCarrierOutcome';
|
|
46009
|
+
errorMessage?: Maybe<Scalars['String']['output']>;
|
|
46010
|
+
ok: Scalars['Boolean']['output'];
|
|
46011
|
+
provider: MtwCarrierProvider;
|
|
46012
|
+
quoteCount: Scalars['Int']['output'];
|
|
46013
|
+
};
|
|
46014
|
+
|
|
46015
|
+
export enum MtwCarrierProvider {
|
|
46016
|
+
Shiprocket = 'SHIPROCKET'
|
|
46017
|
+
}
|
|
46018
|
+
|
|
46019
|
+
export enum MtwCarrierServiceMode {
|
|
46020
|
+
Air = 'AIR',
|
|
46021
|
+
Surface = 'SURFACE'
|
|
46022
|
+
}
|
|
46023
|
+
|
|
45509
46024
|
export type MtwCustomer = {
|
|
45510
46025
|
__typename?: 'MtwCustomer';
|
|
45511
46026
|
address?: Maybe<Scalars['JSON']['output']>;
|
|
@@ -45528,6 +46043,16 @@ export type MtwCustomer = {
|
|
|
45528
46043
|
workspaceId: Scalars['ID']['output'];
|
|
45529
46044
|
};
|
|
45530
46045
|
|
|
46046
|
+
export type MtwCustomerStats = {
|
|
46047
|
+
__typename?: 'MtwCustomerStats';
|
|
46048
|
+
active: Scalars['Int']['output'];
|
|
46049
|
+
avgRating: Scalars['Float']['output'];
|
|
46050
|
+
b2b: Scalars['Int']['output'];
|
|
46051
|
+
b2c: Scalars['Int']['output'];
|
|
46052
|
+
inactive: Scalars['Int']['output'];
|
|
46053
|
+
total: Scalars['Int']['output'];
|
|
46054
|
+
};
|
|
46055
|
+
|
|
45531
46056
|
export type MtwDashboardMetrics = {
|
|
45532
46057
|
__typename?: 'MtwDashboardMetrics';
|
|
45533
46058
|
activeDeliveries: Scalars['Int']['output'];
|
|
@@ -45583,11 +46108,16 @@ export type MtwDeliveryJobStatusHistoryArgs = {
|
|
|
45583
46108
|
|
|
45584
46109
|
export type MtwDeliveryJobStats = {
|
|
45585
46110
|
__typename?: 'MtwDeliveryJobStats';
|
|
46111
|
+
assigned: Scalars['Int']['output'];
|
|
45586
46112
|
cancelled: Scalars['Int']['output'];
|
|
46113
|
+
confirmed: Scalars['Int']['output'];
|
|
45587
46114
|
delivered: Scalars['Int']['output'];
|
|
45588
46115
|
failed: Scalars['Int']['output'];
|
|
45589
46116
|
inTransit: Scalars['Int']['output'];
|
|
46117
|
+
outForDelivery: Scalars['Int']['output'];
|
|
45590
46118
|
pending: Scalars['Int']['output'];
|
|
46119
|
+
pickedUp: Scalars['Int']['output'];
|
|
46120
|
+
returned: Scalars['Int']['output'];
|
|
45591
46121
|
total: Scalars['Int']['output'];
|
|
45592
46122
|
};
|
|
45593
46123
|
|
|
@@ -45664,6 +46194,13 @@ export type MtwDriver = {
|
|
|
45664
46194
|
workspaceId: Scalars['ID']['output'];
|
|
45665
46195
|
};
|
|
45666
46196
|
|
|
46197
|
+
export type MtwDriverSuggestion = {
|
|
46198
|
+
__typename?: 'MtwDriverSuggestion';
|
|
46199
|
+
driver: MtwDriver;
|
|
46200
|
+
reasons: Array<Scalars['String']['output']>;
|
|
46201
|
+
score: Scalars['Int']['output'];
|
|
46202
|
+
};
|
|
46203
|
+
|
|
45667
46204
|
export type MtwEmissionsBreakdown = {
|
|
45668
46205
|
__typename?: 'MtwEmissionsBreakdown';
|
|
45669
46206
|
co2eKg: Scalars['Float']['output'];
|
|
@@ -45703,6 +46240,40 @@ export type MtwFinanceMetrics = {
|
|
|
45703
46240
|
revenue: MtwRevenueMetrics;
|
|
45704
46241
|
};
|
|
45705
46242
|
|
|
46243
|
+
/** A compliance or maintenance item that needs attention, computed live from vehicle service markers and driver licence expiry. */
|
|
46244
|
+
export type MtwFleetAlert = {
|
|
46245
|
+
__typename?: 'MtwFleetAlert';
|
|
46246
|
+
/** Negative when already past due. */
|
|
46247
|
+
daysUntilDue?: Maybe<Scalars['Int']['output']>;
|
|
46248
|
+
dueDate?: Maybe<Scalars['DateTime']['output']>;
|
|
46249
|
+
id: Scalars['ID']['output'];
|
|
46250
|
+
/** Negative when the due mileage has already been passed. Vehicles only. */
|
|
46251
|
+
kmUntilDue?: Maybe<Scalars['Float']['output']>;
|
|
46252
|
+
message: Scalars['String']['output'];
|
|
46253
|
+
severity: MtwFleetAlertSeverity;
|
|
46254
|
+
subjectId: Scalars['ID']['output'];
|
|
46255
|
+
subjectName: Scalars['String']['output'];
|
|
46256
|
+
subjectType: MtwFleetAlertSubjectType;
|
|
46257
|
+
type: MtwFleetAlertType;
|
|
46258
|
+
};
|
|
46259
|
+
|
|
46260
|
+
export enum MtwFleetAlertSeverity {
|
|
46261
|
+
Critical = 'CRITICAL',
|
|
46262
|
+
Warning = 'WARNING'
|
|
46263
|
+
}
|
|
46264
|
+
|
|
46265
|
+
export enum MtwFleetAlertSubjectType {
|
|
46266
|
+
Driver = 'DRIVER',
|
|
46267
|
+
Vehicle = 'VEHICLE'
|
|
46268
|
+
}
|
|
46269
|
+
|
|
46270
|
+
export enum MtwFleetAlertType {
|
|
46271
|
+
LicenseExpired = 'LICENSE_EXPIRED',
|
|
46272
|
+
LicenseExpiring = 'LICENSE_EXPIRING',
|
|
46273
|
+
MaintenanceDueSoon = 'MAINTENANCE_DUE_SOON',
|
|
46274
|
+
MaintenanceOverdue = 'MAINTENANCE_OVERDUE'
|
|
46275
|
+
}
|
|
46276
|
+
|
|
45706
46277
|
export type MtwFleetStats = {
|
|
45707
46278
|
__typename?: 'MtwFleetStats';
|
|
45708
46279
|
activeVehicles: Scalars['Int']['output'];
|
|
@@ -45841,6 +46412,20 @@ export type MtwInventoryTransaction = {
|
|
|
45841
46412
|
workspaceId: Scalars['ID']['output'];
|
|
45842
46413
|
};
|
|
45843
46414
|
|
|
46415
|
+
/** An estimate from the caller's own inputs — not a quote from anyone. */
|
|
46416
|
+
export type MtwOwnFleetEstimate = {
|
|
46417
|
+
__typename?: 'MtwOwnFleetEstimate';
|
|
46418
|
+
/** fixedCost + distanceKm * costPerKm. */
|
|
46419
|
+
cost: Scalars['Float']['output'];
|
|
46420
|
+
costPerKm: Scalars['Float']['output'];
|
|
46421
|
+
currency: Scalars['String']['output'];
|
|
46422
|
+
distanceKm: Scalars['Float']['output'];
|
|
46423
|
+
fixedCost: Scalars['Float']['output'];
|
|
46424
|
+
isCheaperThanCouriers: Scalars['Boolean']['output'];
|
|
46425
|
+
/** Cheapest courier price minus this estimate. Positive means running your own vehicle is cheaper. Null when no courier quoted. */
|
|
46426
|
+
savingsVsCheapestCourier?: Maybe<Scalars['Float']['output']>;
|
|
46427
|
+
};
|
|
46428
|
+
|
|
45844
46429
|
/** Electronic proof-of-delivery (ePOD) capture (BOFF-4399). Signature + recipient name + geo-timestamp are always required; photos are optional and referenced by `wspace-files-svc` File id (never stored as blobs here). */
|
|
45845
46430
|
export type MtwProofOfDelivery = {
|
|
45846
46431
|
__typename?: 'MtwProofOfDelivery';
|
|
@@ -45905,6 +46490,17 @@ export type MtwRoute = {
|
|
|
45905
46490
|
workspaceId: Scalars['ID']['output'];
|
|
45906
46491
|
};
|
|
45907
46492
|
|
|
46493
|
+
export type MtwRouteStats = {
|
|
46494
|
+
__typename?: 'MtwRouteStats';
|
|
46495
|
+
completed: Scalars['Int']['output'];
|
|
46496
|
+
inProgress: Scalars['Int']['output'];
|
|
46497
|
+
optimized: Scalars['Int']['output'];
|
|
46498
|
+
planned: Scalars['Int']['output'];
|
|
46499
|
+
total: Scalars['Int']['output'];
|
|
46500
|
+
totalDistance: Scalars['Float']['output'];
|
|
46501
|
+
totalDuration: Scalars['Float']['output'];
|
|
46502
|
+
};
|
|
46503
|
+
|
|
45908
46504
|
export type MtwShipment = {
|
|
45909
46505
|
__typename?: 'MtwShipment';
|
|
45910
46506
|
actualDelivery?: Maybe<Scalars['DateTime']['output']>;
|
|
@@ -45939,6 +46535,11 @@ export type MtwShipment = {
|
|
|
45939
46535
|
};
|
|
45940
46536
|
|
|
45941
46537
|
|
|
46538
|
+
export type MtwShipmentLegsArgs = {
|
|
46539
|
+
pagination?: InputMaybe<PaginationInput>;
|
|
46540
|
+
};
|
|
46541
|
+
|
|
46542
|
+
|
|
45942
46543
|
export type MtwShipmentTrackingEventsArgs = {
|
|
45943
46544
|
pagination?: InputMaybe<PaginationInput>;
|
|
45944
46545
|
};
|
|
@@ -45984,6 +46585,36 @@ export type MtwShipmentLeg = {
|
|
|
45984
46585
|
workspaceId: Scalars['ID']['output'];
|
|
45985
46586
|
};
|
|
45986
46587
|
|
|
46588
|
+
export type MtwShippingQuote = {
|
|
46589
|
+
__typename?: 'MtwShippingQuote';
|
|
46590
|
+
courierId: Scalars['String']['output'];
|
|
46591
|
+
courierName: Scalars['String']['output'];
|
|
46592
|
+
currency: Scalars['String']['output'];
|
|
46593
|
+
estimatedDeliveryDate?: Maybe<Scalars['String']['output']>;
|
|
46594
|
+
estimatedDeliveryDays?: Maybe<Scalars['Int']['output']>;
|
|
46595
|
+
isCheapest: Scalars['Boolean']['output'];
|
|
46596
|
+
isFastest: Scalars['Boolean']['output'];
|
|
46597
|
+
/** Flagged by the carrier itself as its recommendation. */
|
|
46598
|
+
isRecommended: Scalars['Boolean']['output'];
|
|
46599
|
+
mode?: Maybe<MtwCarrierServiceMode>;
|
|
46600
|
+
price: Scalars['Float']['output'];
|
|
46601
|
+
provider: MtwCarrierProvider;
|
|
46602
|
+
/** 0-5, when the carrier publishes one. */
|
|
46603
|
+
rating?: Maybe<Scalars['Float']['output']>;
|
|
46604
|
+
};
|
|
46605
|
+
|
|
46606
|
+
export type MtwShippingQuoteResult = {
|
|
46607
|
+
__typename?: 'MtwShippingQuoteResult';
|
|
46608
|
+
/** max(dead weight, volumetric weight) actually sent to the carriers. */
|
|
46609
|
+
chargeableWeightKg: Scalars['Float']['output'];
|
|
46610
|
+
/** Present only when the input carried ownFleet. */
|
|
46611
|
+
ownFleet?: Maybe<MtwOwnFleetEstimate>;
|
|
46612
|
+
/** One entry per carrier queried, so a failing carrier is visible rather than silently missing. */
|
|
46613
|
+
providers: Array<MtwCarrierOutcome>;
|
|
46614
|
+
/** Every quote from every connected carrier, cheapest first. */
|
|
46615
|
+
quotes: Array<MtwShippingQuote>;
|
|
46616
|
+
};
|
|
46617
|
+
|
|
45987
46618
|
export type MtwTrackingAlert = {
|
|
45988
46619
|
__typename?: 'MtwTrackingAlert';
|
|
45989
46620
|
alertType: Scalars['String']['output'];
|
|
@@ -46022,10 +46653,13 @@ export type MtwVehicle = {
|
|
|
46022
46653
|
fuelLevel?: Maybe<Scalars['Float']['output']>;
|
|
46023
46654
|
fuelType?: Maybe<FuelType>;
|
|
46024
46655
|
id: Scalars['ID']['output'];
|
|
46656
|
+
lastServiceDate?: Maybe<Scalars['DateTime']['output']>;
|
|
46025
46657
|
licensePlate?: Maybe<Scalars['String']['output']>;
|
|
46026
46658
|
make?: Maybe<Scalars['String']['output']>;
|
|
46027
46659
|
mileage?: Maybe<Scalars['Float']['output']>;
|
|
46028
46660
|
model?: Maybe<Scalars['String']['output']>;
|
|
46661
|
+
nextServiceDueDate?: Maybe<Scalars['DateTime']['output']>;
|
|
46662
|
+
nextServiceDueMileage?: Maybe<Scalars['Float']['output']>;
|
|
46029
46663
|
onBehalfOf: Scalars['String']['output'];
|
|
46030
46664
|
ownershipType?: Maybe<Scalars['String']['output']>;
|
|
46031
46665
|
status: VehicleStatus;
|
|
@@ -46037,6 +46671,13 @@ export type MtwVehicle = {
|
|
|
46037
46671
|
year?: Maybe<Scalars['Int']['output']>;
|
|
46038
46672
|
};
|
|
46039
46673
|
|
|
46674
|
+
export type MtwVehicleSuggestion = {
|
|
46675
|
+
__typename?: 'MtwVehicleSuggestion';
|
|
46676
|
+
reasons: Array<Scalars['String']['output']>;
|
|
46677
|
+
score: Scalars['Int']['output'];
|
|
46678
|
+
vehicle: MtwVehicle;
|
|
46679
|
+
};
|
|
46680
|
+
|
|
46040
46681
|
export type MtwWarehouse = {
|
|
46041
46682
|
__typename?: 'MtwWarehouse';
|
|
46042
46683
|
address: Scalars['JSON']['output'];
|
|
@@ -46089,6 +46730,13 @@ export type MtwWarehouseLocation = {
|
|
|
46089
46730
|
zone?: Maybe<Scalars['String']['output']>;
|
|
46090
46731
|
};
|
|
46091
46732
|
|
|
46733
|
+
export type MtwWarehouseStats = {
|
|
46734
|
+
__typename?: 'MtwWarehouseStats';
|
|
46735
|
+
active: Scalars['Int']['output'];
|
|
46736
|
+
avgUtilization: Scalars['Float']['output'];
|
|
46737
|
+
total: Scalars['Int']['output'];
|
|
46738
|
+
};
|
|
46739
|
+
|
|
46092
46740
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
46093
46741
|
export type Mutation = {
|
|
46094
46742
|
__typename?: 'Mutation';
|
|
@@ -46263,6 +46911,7 @@ export type Mutation = {
|
|
|
46263
46911
|
approveGgnomadDamageClaim: GgnomadDamageClaim;
|
|
46264
46912
|
/** BOFF-4388 — operator-only (see GGNOMAD_ROLES marketplace-operator): approves a PENDING_REVIEW listing, moving it to ACTIVE. */
|
|
46265
46913
|
approveGgnomadListing: GgnomadListing;
|
|
46914
|
+
approveHealthyBowlLabourEntry: HealthyBowlLabourEntry;
|
|
46266
46915
|
approveHousingvistaVerificationItem: HousingVistaVerificationItem;
|
|
46267
46916
|
approveJoinRequest: GroupMembership;
|
|
46268
46917
|
approveRequest: TimeApprovalRequest;
|
|
@@ -47043,6 +47692,8 @@ export type Mutation = {
|
|
|
47043
47692
|
createDataSink: DataSink;
|
|
47044
47693
|
createDeliveryJob: MtwDeliveryJob;
|
|
47045
47694
|
createDigitalTwin: DigitalTwin;
|
|
47695
|
+
/** Create a disposable workspace (BOFF-6560): the ONLY supported path that can set `Workspace.isDisposable`. Restricted to service actors — same security model as syncFromGlobal (actorTypes over action/resource RBAC, because the workspace doesn't exist yet and this is M2M-only by design). No user/billing quota is enforced; disposable workspaces are ops/test tooling, not customer seats. Callers (e.g. a product's demo-seed job) are responsible for tearing the workspace down through the normal deleteWorkspace mutation when done. */
|
|
47696
|
+
createDisposableWorkspace: Workspace;
|
|
47046
47697
|
/** Create a new docs page */
|
|
47047
47698
|
createDocsPage: VibecontrolsDocsPage;
|
|
47048
47699
|
createDocsShareLink: ShareGrant;
|
|
@@ -47179,6 +47830,7 @@ export type Mutation = {
|
|
|
47179
47830
|
/** Sponsor: open a DRAFT aggregation lot for a contract. */
|
|
47180
47831
|
createHealthyBowlContractAggregationLot: HealthyBowlContractAggregationLot;
|
|
47181
47832
|
createHealthyBowlCostCenter: HealthyBowlCostCenter;
|
|
47833
|
+
createHealthyBowlCrew: HealthyBowlCrew;
|
|
47182
47834
|
createHealthyBowlCrop: Crop;
|
|
47183
47835
|
createHealthyBowlCsaPickupLocation: HealthyBowlPickupLocation;
|
|
47184
47836
|
createHealthyBowlCsaPlan: CsaPlan;
|
|
@@ -47209,6 +47861,8 @@ export type Mutation = {
|
|
|
47209
47861
|
createHealthyBowlIrrigationAutomation: IrrigationAutomation;
|
|
47210
47862
|
createHealthyBowlIrrigationSchedule: IrrigationSchedule;
|
|
47211
47863
|
createHealthyBowlLedgerAccount: HealthyBowlLedgerAccount;
|
|
47864
|
+
/** BOFF-6077 — add a tranche to a loan's release schedule. */
|
|
47865
|
+
createHealthyBowlLoanMilestone: HealthyBowlLoanMilestone;
|
|
47212
47866
|
createHealthyBowlMapFeature: MapFeature;
|
|
47213
47867
|
createHealthyBowlMarketplaceProduct: MarketplaceProduct;
|
|
47214
47868
|
createHealthyBowlMedicationLibraryItem: MedicationLibraryItem;
|
|
@@ -47248,6 +47902,7 @@ export type Mutation = {
|
|
|
47248
47902
|
/** Log a watering run (manual now; also called by FluidGrids automation later). */
|
|
47249
47903
|
createHealthyBowlWateringRun: WateringRun;
|
|
47250
47904
|
createHealthyBowlWholesaleOrder: WholesaleOrder;
|
|
47905
|
+
createHealthyBowlWorker: HealthyBowlWorker;
|
|
47251
47906
|
createHousingvistaAmcContract: HousingVistaAmcContract;
|
|
47252
47907
|
createHousingvistaAreaInsight: HousingVistaAreaInsight;
|
|
47253
47908
|
createHousingvistaAsset: HousingVistaAsset;
|
|
@@ -47429,6 +48084,10 @@ export type Mutation = {
|
|
|
47429
48084
|
deactivateVibecontrolsAgent: VibecontrolsAgent;
|
|
47430
48085
|
/** Deactivate a workflow definition (sets status to DRAFT, disables scheduled triggers) */
|
|
47431
48086
|
deactivateWorkflowDefinition: WorkflowDefinition;
|
|
48087
|
+
/** Accept or reject a proposal. A BLOCKED proposal cannot be decided at all. */
|
|
48088
|
+
decideHealthyBowlAgronomyDecision: AgronomyDecision;
|
|
48089
|
+
/** BOFF-3676 — record a human verdict on a recommendation. ACCEPTED moves it to ACKNOWLEDGED, not RESOLVED: accepting advice is not doing the work, and resolving it would hide outstanding work from every "what needs doing" read. Re-deciding is refused rather than overwritten — the first verdict is the record of what someone judged. */
|
|
48090
|
+
decideHealthyBowlFarmRecommendation: HealthyBowlFarmRecommendation;
|
|
47432
48091
|
declareLifeValue: TimeCampusLifeValue;
|
|
47433
48092
|
/** Decline a file/folder share invitation. */
|
|
47434
48093
|
declineFileShare: Scalars['Boolean']['output'];
|
|
@@ -47596,6 +48255,7 @@ export type Mutation = {
|
|
|
47596
48255
|
deleteHealthyBowlCompostBatch: Scalars['Boolean']['output'];
|
|
47597
48256
|
deleteHealthyBowlContact: Scalars['Boolean']['output'];
|
|
47598
48257
|
deleteHealthyBowlCostCenter: Scalars['Boolean']['output'];
|
|
48258
|
+
deleteHealthyBowlCrew: Scalars['Boolean']['output'];
|
|
47599
48259
|
deleteHealthyBowlCrop: Scalars['Boolean']['output'];
|
|
47600
48260
|
deleteHealthyBowlCsaPlan: Scalars['Boolean']['output'];
|
|
47601
48261
|
deleteHealthyBowlDeliveryRoute: Scalars['Boolean']['output'];
|
|
@@ -47630,6 +48290,7 @@ export type Mutation = {
|
|
|
47630
48290
|
deleteHealthyBowlIrrigationAutomation: Scalars['Boolean']['output'];
|
|
47631
48291
|
deleteHealthyBowlIrrigationSchedule: Scalars['Boolean']['output'];
|
|
47632
48292
|
deleteHealthyBowlJournalEntry: Scalars['Boolean']['output'];
|
|
48293
|
+
deleteHealthyBowlLabourEntry: Scalars['Boolean']['output'];
|
|
47633
48294
|
deleteHealthyBowlLedgerAccount: Scalars['Boolean']['output'];
|
|
47634
48295
|
deleteHealthyBowlMapFeature: Scalars['Boolean']['output'];
|
|
47635
48296
|
deleteHealthyBowlMarketplaceProduct: Scalars['Boolean']['output'];
|
|
@@ -47662,6 +48323,7 @@ export type Mutation = {
|
|
|
47662
48323
|
deleteHealthyBowlTreatment: Scalars['Boolean']['output'];
|
|
47663
48324
|
deleteHealthyBowlVaccination: Scalars['Boolean']['output'];
|
|
47664
48325
|
deleteHealthyBowlWholesaleOrder: Scalars['Boolean']['output'];
|
|
48326
|
+
deleteHealthyBowlWorker: Scalars['Boolean']['output'];
|
|
47665
48327
|
/** Delete a saved yield scenario. */
|
|
47666
48328
|
deleteHealthyBowlYieldScenario: Scalars['Boolean']['output'];
|
|
47667
48329
|
deleteHousingvistaAmcContract: Scalars['Boolean']['output'];
|
|
@@ -47843,6 +48505,8 @@ export type Mutation = {
|
|
|
47843
48505
|
dispatchHealthyBowlAccountingSync: Scalars['Int']['output'];
|
|
47844
48506
|
/** FluidGrids callback: close every LIVE auction in the workspace whose endTime has passed, creating each winner Order. Returns the number of auctions closed. Called anonymously by the workspace's auction-sweep cron over the internal gateway, so it is authorized by an HMAC dispatch secret (HMAC-SHA256 of workspaceId keyed by INTERNAL_SERVICE_TOKEN) rather than by a user token — the same shape as dispatchHealthyBowlWateringRun. */
|
|
47845
48507
|
dispatchHealthyBowlAuctionSweep: Scalars['Int']['output'];
|
|
48508
|
+
/** FluidGrids callback: send due confirmed-consultation reminders. Authorized by a per-workspace HMAC. */
|
|
48509
|
+
dispatchHealthyBowlConsultReminderSweep: Scalars['Int']['output'];
|
|
47846
48510
|
/** FluidGrids callback: the flow's action node calls THIS to make the member-facing send. Sends an IN_APP notification via global-notification-svc and stamps notificationSentAt. Guarded by an HMAC(INTERNAL_SERVICE_TOKEN, csaDeliveryId) dispatchSecret (timing-safe compare). Public so the unauthenticated node can reach it through the gateway. */
|
|
47847
48511
|
dispatchHealthyBowlCsaNotification: Scalars['Boolean']['output'];
|
|
47848
48512
|
/** Marks the route IN_PROGRESS, flips every stop's CsaDelivery to DISPATCHED, and triggers the FluidGrids flow `healthybowl-csa-box-dispatch` (one run per member) over wspace-int-gateway. Stores the WorkflowRun id on each CsaDelivery. Does NOT send the notification itself — the flow calls back to dispatchHealthyBowlCsaNotification. */
|
|
@@ -48108,6 +48772,8 @@ export type Mutation = {
|
|
|
48108
48772
|
generateGroupShareLink: GroupShareLink;
|
|
48109
48773
|
/** AI-assisted (LLM, with deterministic fallback) budget reallocation recommendation. */
|
|
48110
48774
|
generateHeadshotmarketingAdBudgetRecommendation: HeadshotmarketingAdBudgetRecommendation;
|
|
48775
|
+
/** BOFF-6022 — generate an analytics report over data this workspace already holds. `type` accepts FINANCIAL (cost by crop, from posted ledger lines) and CROP (harvest yield). LIVESTOCK, WEATHER and MARKETPLACE exist on the enum but have no builder yet and are refused with a readable message — emitting an empty document under a real-looking title would recreate the very problem this closes, a surface that appears to work and produces nothing. The figures are snapshotted onto the row, so the report keeps meaning what it meant after the underlying transactions change. */
|
|
48776
|
+
generateHealthyBowlAnalyticsReport: AnalyticsReport;
|
|
48111
48777
|
generateHealthyBowlCertificateOfOrigin: CertificateOfOrigin;
|
|
48112
48778
|
/** Build a numbered, ordered route from the SCHEDULED CSA deliveries in a date range. */
|
|
48113
48779
|
generateHealthyBowlDeliveryRoute: DeliveryRoute;
|
|
@@ -48699,6 +49365,7 @@ export type Mutation = {
|
|
|
48699
49365
|
/** Freeze an inventory's activity snapshots (DRAFT → LOCKED). */
|
|
48700
49366
|
lockHealthyBowlGhgInventory: HbGhgInventory;
|
|
48701
49367
|
lockVault: Vault;
|
|
49368
|
+
logHealthyBowlLabourEntry: HealthyBowlLabourEntry;
|
|
48702
49369
|
/** Log a medication treatment: computes per-produce clear dates and fires the 'withdrawal started' in-app notification. */
|
|
48703
49370
|
logHealthyBowlMedicationTreatment: MedicationTreatment;
|
|
48704
49371
|
/** One-tap "Log to Pest Issues": create a persisted PestIssue pre-filled from a scan's diagnosis, entering the normal open→monitoring→resolved workflow. */
|
|
@@ -49133,6 +49800,8 @@ export type Mutation = {
|
|
|
49133
49800
|
promptUpdateProvider: PromptProvider;
|
|
49134
49801
|
promptUpdateTemplate: PromptTemplateDef;
|
|
49135
49802
|
propagateTagToChildren: Array<UniversalTagAssignment>;
|
|
49803
|
+
/** Run an agronomic sweep and return the proposals it wrote. A second sweep over unchanged data updates the open proposal rather than adding another — otherwise the inbox becomes a pile of identical cards, which is how a farmer learns to ignore it. Returns BLOCKED rows too: a treatment the compliance rail refused is recorded so the farmer can see it was considered and why it was refused. Dropping it silently looks identical to the engine never having noticed. */
|
|
49804
|
+
proposeHealthyBowlAgronomyDecisions: AgronomyDecisionSweepResult;
|
|
49136
49805
|
/** Proxy an HTTP request to a sandbox service. Used by the frontend to communicate with services running inside sandboxes (e.g., ai-assistant) through the gateway. */
|
|
49137
49806
|
proxySandboxRequest: ProxySandboxResponse;
|
|
49138
49807
|
pswAddTeamAssignment: PswTeamAssignment;
|
|
@@ -49285,6 +49954,7 @@ export type Mutation = {
|
|
|
49285
49954
|
recordKnowledgeArticleView: KnowledgeArticle;
|
|
49286
49955
|
recordProvenance: ProvenanceRecord;
|
|
49287
49956
|
recordTimeCampusImpersonationAudit: TimeCampusImpersonationAuditEntry;
|
|
49957
|
+
recordVehicleService: MtwVehicle;
|
|
49288
49958
|
recordWorkPattern: WorkPattern;
|
|
49289
49959
|
/** Redeems points from the calling actor's loyalty account for a discount amount (calculation only — no live payment capture). Throws INSUFFICIENT_LOYALTY_POINTS if the account's balance is below `points`. */
|
|
49290
49960
|
redeemGgnomadLoyaltyPoints: GgnomadLoyaltyRedemption;
|
|
@@ -49350,6 +50020,8 @@ export type Mutation = {
|
|
|
49350
50020
|
releaseCrewEscrowRecord: CrewEscrowRecord;
|
|
49351
50021
|
/** Release a file lock */
|
|
49352
50022
|
releaseFileLock: ReleaseLockResponse;
|
|
50023
|
+
/** BOFF-6077 — authorise a milestone's release against real farm evidence. The evidence record is resolved **in this workspace** before anything is written; without that a farm could authorise its own tranche by typing any uuid, and the gate would be decorative. Records an authorisation. **Moves no money** — nothing in the platform can hold any. */
|
|
50024
|
+
releaseHealthyBowlLoanMilestone: HealthyBowlLoanMilestone;
|
|
49353
50025
|
releaseLegalHold: LegalHold;
|
|
49354
50026
|
/** Release control of a session */
|
|
49355
50027
|
releaseSessionControl: Scalars['Boolean']['output'];
|
|
@@ -49477,6 +50149,8 @@ export type Mutation = {
|
|
|
49477
50149
|
reportAiTokenUsage: Scalars['Boolean']['output'];
|
|
49478
50150
|
/** Records the real token usage of a completed assistant turn. The resolver computes COST-WEIGHTED credits server-side (billing.quoteAiCredits, per-model prices) and charges them once via addUsageForWorkspace — so the amount is never client-supplied. No @usage(trackUsage) directive here: that would charge a second time (flat token count) on top of the resolver's weighted charge. */
|
|
49479
50151
|
reportGovAiTokenUsage: Scalars['Boolean']['output'];
|
|
50152
|
+
/** Record and charge the AI credits a completed HealthyBowl assistant turn consumed. Best-effort by contract: the answer has already been produced and shown to the farmer, so a billing or pricing failure must never fail this mutation. It logs and returns true. Callers should not branch on the result. `resource: "ai-prompt"` reuses the platform's existing AI-prompt permission rather than introducing a new resource type: RBAC is default-DENY and an unregistered resource would reject every caller, silently reducing this meter to a no-op. It is the same resource VibeControls' equivalent mutation uses. */
|
|
50153
|
+
reportHealthyBowlAiTokenUsage: Scalars['Boolean']['output'];
|
|
49480
50154
|
reportMessage: ReportMessagePayload;
|
|
49481
50155
|
reprocessTimeCampusTimeline: TimeCampusAdminMutationResult;
|
|
49482
50156
|
/** Request input-loan facilitation: creates a time-bounded, revocable FinancierAccessGrant (UC-14) sharing the farmer's field + input-plan records with the lender, plus the loan request row. No always-on data sharing. communityFunded is rejected unless the flag is ON. */
|
|
@@ -49795,12 +50469,16 @@ export type Mutation = {
|
|
|
49795
50469
|
/** Set a view as the default */
|
|
49796
50470
|
setDefaultView: DashboardView;
|
|
49797
50471
|
setEventWebhook: WebhookConfig;
|
|
50472
|
+
/** BOFF-6030 — publish or update a consultant's weekly availability. One rule per weekday. */
|
|
50473
|
+
setHealthyBowlConsultAvailability: Scalars['ID']['output'];
|
|
49798
50474
|
/** Replace the full structured-tag set on a HealthyBowl entity (entity-owned tags, reuse wspace-tags-svc). */
|
|
49799
50475
|
setHealthyBowlEntityTags: Array<HealthyBowlTag>;
|
|
49800
50476
|
/** Attach, clear or waive one document slot on an existing policy (BOFF-6079). Works AFTER submit on purpose: PMFBY enrolment windows are short, and a farmer who submits with the optional paperwork outstanding must be able to finish later rather than start again. */
|
|
49801
50477
|
setHealthyBowlInsuranceDocument: HealthyBowlInsurancePolicy;
|
|
49802
50478
|
/** Publish (or unpublish) one of YOUR OWN listings to the shared cross-farm market. Workspace-scoped: a farm can only ever change the sharing flag on its own listings. */
|
|
49803
50479
|
setHealthyBowlListingShared: MarketplaceProduct;
|
|
50480
|
+
/** BOFF-6077 — record what the lender has committed to release across this loan's milestones. */
|
|
50481
|
+
setHealthyBowlLoanEscrowCommitment: HealthyBowlLoanFacilitation;
|
|
49804
50482
|
/** Set a paddock's own rest target. Writes to the field row, so it uses the field RBAC pair rather than the animal one. */
|
|
49805
50483
|
setHealthyBowlPaddockRest: HealthyBowlPaddockGrazing;
|
|
49806
50484
|
/** Replace a product's whole quantity ladder in one transaction (BOFF-6091). Refuses duplicate thresholds. */
|
|
@@ -50483,6 +51161,7 @@ export type Mutation = {
|
|
|
50483
51161
|
updateHealthyBowlConsultationStatus: Consultation;
|
|
50484
51162
|
updateHealthyBowlContact: HealthyBowlContact;
|
|
50485
51163
|
updateHealthyBowlCostCenter: HealthyBowlCostCenter;
|
|
51164
|
+
updateHealthyBowlCrew: HealthyBowlCrew;
|
|
50486
51165
|
updateHealthyBowlCrop: Crop;
|
|
50487
51166
|
updateHealthyBowlCsaDelivery: CsaDelivery;
|
|
50488
51167
|
updateHealthyBowlCsaMembership: CsaMembership;
|
|
@@ -50515,6 +51194,7 @@ export type Mutation = {
|
|
|
50515
51194
|
updateHealthyBowlIrrigationAutomation: IrrigationAutomation;
|
|
50516
51195
|
/** Update a schedule; also handles pause/resume via the status field. */
|
|
50517
51196
|
updateHealthyBowlIrrigationSchedule: IrrigationSchedule;
|
|
51197
|
+
updateHealthyBowlLabourEntry: HealthyBowlLabourEntry;
|
|
50518
51198
|
updateHealthyBowlLedgerAccount: HealthyBowlLedgerAccount;
|
|
50519
51199
|
updateHealthyBowlLoanFacilitation: HealthyBowlLoanFacilitation;
|
|
50520
51200
|
updateHealthyBowlMapFeature: MapFeature;
|
|
@@ -50536,6 +51216,7 @@ export type Mutation = {
|
|
|
50536
51216
|
updateHealthyBowlRecipe: Recipe;
|
|
50537
51217
|
/** Update the workspace satellite ingestion settings. */
|
|
50538
51218
|
updateHealthyBowlSatelliteSettings: HbSatelliteSettings;
|
|
51219
|
+
updateHealthyBowlSchemeApplicationStatus: SchemeApplication;
|
|
50539
51220
|
updateHealthyBowlSeedLot: SeedLot;
|
|
50540
51221
|
updateHealthyBowlSensorProbe: SensorProbe;
|
|
50541
51222
|
updateHealthyBowlSoilTest: SoilTest;
|
|
@@ -50550,6 +51231,7 @@ export type Mutation = {
|
|
|
50550
51231
|
updateHealthyBowlTreatment: Treatment;
|
|
50551
51232
|
updateHealthyBowlVaccination: Vaccination;
|
|
50552
51233
|
updateHealthyBowlWholesaleOrder: WholesaleOrder;
|
|
51234
|
+
updateHealthyBowlWorker: HealthyBowlWorker;
|
|
50553
51235
|
updateHousingvistaAmcContract: HousingVistaAmcContract;
|
|
50554
51236
|
updateHousingvistaAreaInsight: HousingVistaAreaInsight;
|
|
50555
51237
|
updateHousingvistaAsset: HousingVistaAsset;
|
|
@@ -51507,6 +52189,13 @@ export type MutationApproveGgnomadListingArgs = {
|
|
|
51507
52189
|
};
|
|
51508
52190
|
|
|
51509
52191
|
|
|
52192
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
52193
|
+
export type MutationApproveHealthyBowlLabourEntryArgs = {
|
|
52194
|
+
context: ContextInput;
|
|
52195
|
+
id: Scalars['ID']['input'];
|
|
52196
|
+
};
|
|
52197
|
+
|
|
52198
|
+
|
|
51510
52199
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
51511
52200
|
export type MutationApproveHousingvistaVerificationItemArgs = {
|
|
51512
52201
|
id: Scalars['ID']['input'];
|
|
@@ -54966,6 +55655,12 @@ export type MutationCreateDigitalTwinArgs = {
|
|
|
54966
55655
|
};
|
|
54967
55656
|
|
|
54968
55657
|
|
|
55658
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
55659
|
+
export type MutationCreateDisposableWorkspaceArgs = {
|
|
55660
|
+
input: CreateDisposableWorkspaceInput;
|
|
55661
|
+
};
|
|
55662
|
+
|
|
55663
|
+
|
|
54969
55664
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
54970
55665
|
export type MutationCreateDocsPageArgs = {
|
|
54971
55666
|
input: CreateVibecontrolsDocsPageInput;
|
|
@@ -55515,6 +56210,12 @@ export type MutationCreateHealthyBowlCostCenterArgs = {
|
|
|
55515
56210
|
};
|
|
55516
56211
|
|
|
55517
56212
|
|
|
56213
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
56214
|
+
export type MutationCreateHealthyBowlCrewArgs = {
|
|
56215
|
+
input: CreateHealthyBowlCrewInput;
|
|
56216
|
+
};
|
|
56217
|
+
|
|
56218
|
+
|
|
55518
56219
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
55519
56220
|
export type MutationCreateHealthyBowlCropArgs = {
|
|
55520
56221
|
input: CreateCropInput;
|
|
@@ -55677,6 +56378,12 @@ export type MutationCreateHealthyBowlLedgerAccountArgs = {
|
|
|
55677
56378
|
};
|
|
55678
56379
|
|
|
55679
56380
|
|
|
56381
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
56382
|
+
export type MutationCreateHealthyBowlLoanMilestoneArgs = {
|
|
56383
|
+
input: CreateHealthyBowlLoanMilestoneInput;
|
|
56384
|
+
};
|
|
56385
|
+
|
|
56386
|
+
|
|
55680
56387
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
55681
56388
|
export type MutationCreateHealthyBowlMapFeatureArgs = {
|
|
55682
56389
|
input: CreateHealthyBowlMapFeatureInput;
|
|
@@ -55883,6 +56590,12 @@ export type MutationCreateHealthyBowlWholesaleOrderArgs = {
|
|
|
55883
56590
|
};
|
|
55884
56591
|
|
|
55885
56592
|
|
|
56593
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
56594
|
+
export type MutationCreateHealthyBowlWorkerArgs = {
|
|
56595
|
+
input: CreateHealthyBowlWorkerInput;
|
|
56596
|
+
};
|
|
56597
|
+
|
|
56598
|
+
|
|
55886
56599
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
55887
56600
|
export type MutationCreateHousingvistaAmcContractArgs = {
|
|
55888
56601
|
input: HousingVistaCreateAmcContractInput;
|
|
@@ -56709,6 +57422,18 @@ export type MutationDeactivateWorkflowDefinitionArgs = {
|
|
|
56709
57422
|
};
|
|
56710
57423
|
|
|
56711
57424
|
|
|
57425
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
57426
|
+
export type MutationDecideHealthyBowlAgronomyDecisionArgs = {
|
|
57427
|
+
input: DecideAgronomyDecisionInput;
|
|
57428
|
+
};
|
|
57429
|
+
|
|
57430
|
+
|
|
57431
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
57432
|
+
export type MutationDecideHealthyBowlFarmRecommendationArgs = {
|
|
57433
|
+
input: DecideHealthyBowlFarmRecommendationInput;
|
|
57434
|
+
};
|
|
57435
|
+
|
|
57436
|
+
|
|
56712
57437
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
56713
57438
|
export type MutationDeclareLifeValueArgs = {
|
|
56714
57439
|
input: TimeCampusLifeValueInput;
|
|
@@ -57448,6 +58173,13 @@ export type MutationDeleteHealthyBowlCostCenterArgs = {
|
|
|
57448
58173
|
};
|
|
57449
58174
|
|
|
57450
58175
|
|
|
58176
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
58177
|
+
export type MutationDeleteHealthyBowlCrewArgs = {
|
|
58178
|
+
context: ContextInput;
|
|
58179
|
+
id: Scalars['ID']['input'];
|
|
58180
|
+
};
|
|
58181
|
+
|
|
58182
|
+
|
|
57451
58183
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
57452
58184
|
export type MutationDeleteHealthyBowlCropArgs = {
|
|
57453
58185
|
context: ContextInput;
|
|
@@ -57673,6 +58405,13 @@ export type MutationDeleteHealthyBowlJournalEntryArgs = {
|
|
|
57673
58405
|
};
|
|
57674
58406
|
|
|
57675
58407
|
|
|
58408
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
58409
|
+
export type MutationDeleteHealthyBowlLabourEntryArgs = {
|
|
58410
|
+
context: ContextInput;
|
|
58411
|
+
id: Scalars['ID']['input'];
|
|
58412
|
+
};
|
|
58413
|
+
|
|
58414
|
+
|
|
57676
58415
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
57677
58416
|
export type MutationDeleteHealthyBowlLedgerAccountArgs = {
|
|
57678
58417
|
context: ContextInput;
|
|
@@ -57890,6 +58629,13 @@ export type MutationDeleteHealthyBowlWholesaleOrderArgs = {
|
|
|
57890
58629
|
};
|
|
57891
58630
|
|
|
57892
58631
|
|
|
58632
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
58633
|
+
export type MutationDeleteHealthyBowlWorkerArgs = {
|
|
58634
|
+
context: ContextInput;
|
|
58635
|
+
id: Scalars['ID']['input'];
|
|
58636
|
+
};
|
|
58637
|
+
|
|
58638
|
+
|
|
57893
58639
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
57894
58640
|
export type MutationDeleteHealthyBowlYieldScenarioArgs = {
|
|
57895
58641
|
context: ContextInput;
|
|
@@ -58722,6 +59468,12 @@ export type MutationDispatchHealthyBowlAuctionSweepArgs = {
|
|
|
58722
59468
|
};
|
|
58723
59469
|
|
|
58724
59470
|
|
|
59471
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
59472
|
+
export type MutationDispatchHealthyBowlConsultReminderSweepArgs = {
|
|
59473
|
+
input: DispatchHealthyBowlConsultReminderSweepInput;
|
|
59474
|
+
};
|
|
59475
|
+
|
|
59476
|
+
|
|
58725
59477
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
58726
59478
|
export type MutationDispatchHealthyBowlCsaNotificationArgs = {
|
|
58727
59479
|
input: DispatchHealthyBowlCsaNotificationInput;
|
|
@@ -59962,6 +60714,16 @@ export type MutationGenerateHeadshotmarketingAdBudgetRecommendationArgs = {
|
|
|
59962
60714
|
};
|
|
59963
60715
|
|
|
59964
60716
|
|
|
60717
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
60718
|
+
export type MutationGenerateHealthyBowlAnalyticsReportArgs = {
|
|
60719
|
+
context: ContextInput;
|
|
60720
|
+
endDate: Scalars['String']['input'];
|
|
60721
|
+
startDate: Scalars['String']['input'];
|
|
60722
|
+
title?: InputMaybe<Scalars['String']['input']>;
|
|
60723
|
+
type: HealthyBowlGeneratableReportType;
|
|
60724
|
+
};
|
|
60725
|
+
|
|
60726
|
+
|
|
59965
60727
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
59966
60728
|
export type MutationGenerateHealthyBowlCertificateOfOriginArgs = {
|
|
59967
60729
|
input: GenerateCertificateOfOriginInput;
|
|
@@ -62456,6 +63218,12 @@ export type MutationLockVaultArgs = {
|
|
|
62456
63218
|
};
|
|
62457
63219
|
|
|
62458
63220
|
|
|
63221
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
63222
|
+
export type MutationLogHealthyBowlLabourEntryArgs = {
|
|
63223
|
+
input: LogHealthyBowlLabourEntryInput;
|
|
63224
|
+
};
|
|
63225
|
+
|
|
63226
|
+
|
|
62459
63227
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62460
63228
|
export type MutationLogHealthyBowlMedicationTreatmentArgs = {
|
|
62461
63229
|
input: LogMedicationTreatmentInput;
|
|
@@ -64149,6 +64917,12 @@ export type MutationPropagateTagToChildrenArgs = {
|
|
|
64149
64917
|
};
|
|
64150
64918
|
|
|
64151
64919
|
|
|
64920
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
64921
|
+
export type MutationProposeHealthyBowlAgronomyDecisionsArgs = {
|
|
64922
|
+
input: ProposeAgronomyDecisionsInput;
|
|
64923
|
+
};
|
|
64924
|
+
|
|
64925
|
+
|
|
64152
64926
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
64153
64927
|
export type MutationProxySandboxRequestArgs = {
|
|
64154
64928
|
input: ProxySandboxRequestInput;
|
|
@@ -64786,6 +65560,13 @@ export type MutationRecordTimeCampusImpersonationAuditArgs = {
|
|
|
64786
65560
|
};
|
|
64787
65561
|
|
|
64788
65562
|
|
|
65563
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
65564
|
+
export type MutationRecordVehicleServiceArgs = {
|
|
65565
|
+
id: Scalars['ID']['input'];
|
|
65566
|
+
input: RecordVehicleServiceInput;
|
|
65567
|
+
};
|
|
65568
|
+
|
|
65569
|
+
|
|
64789
65570
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
64790
65571
|
export type MutationRecordWorkPatternArgs = {
|
|
64791
65572
|
input: RecordWorkPatternInput;
|
|
@@ -65047,6 +65828,12 @@ export type MutationReleaseFileLockArgs = {
|
|
|
65047
65828
|
};
|
|
65048
65829
|
|
|
65049
65830
|
|
|
65831
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
65832
|
+
export type MutationReleaseHealthyBowlLoanMilestoneArgs = {
|
|
65833
|
+
input: ReleaseHealthyBowlLoanMilestoneInput;
|
|
65834
|
+
};
|
|
65835
|
+
|
|
65836
|
+
|
|
65050
65837
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
65051
65838
|
export type MutationReleaseLegalHoldArgs = {
|
|
65052
65839
|
id: Scalars['ID']['input'];
|
|
@@ -65626,6 +66413,12 @@ export type MutationReportGovAiTokenUsageArgs = {
|
|
|
65626
66413
|
};
|
|
65627
66414
|
|
|
65628
66415
|
|
|
66416
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
66417
|
+
export type MutationReportHealthyBowlAiTokenUsageArgs = {
|
|
66418
|
+
input: ReportHealthyBowlAiTokenUsageInput;
|
|
66419
|
+
};
|
|
66420
|
+
|
|
66421
|
+
|
|
65629
66422
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
65630
66423
|
export type MutationReportMessageArgs = {
|
|
65631
66424
|
messageId: Scalars['ID']['input'];
|
|
@@ -67000,6 +67793,12 @@ export type MutationSetEventWebhookArgs = {
|
|
|
67000
67793
|
};
|
|
67001
67794
|
|
|
67002
67795
|
|
|
67796
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
67797
|
+
export type MutationSetHealthyBowlConsultAvailabilityArgs = {
|
|
67798
|
+
input: SetHealthyBowlConsultAvailabilityInput;
|
|
67799
|
+
};
|
|
67800
|
+
|
|
67801
|
+
|
|
67003
67802
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
67004
67803
|
export type MutationSetHealthyBowlEntityTagsArgs = {
|
|
67005
67804
|
input: SetHealthyBowlEntityTagsInput;
|
|
@@ -67020,6 +67819,12 @@ export type MutationSetHealthyBowlListingSharedArgs = {
|
|
|
67020
67819
|
};
|
|
67021
67820
|
|
|
67022
67821
|
|
|
67822
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
67823
|
+
export type MutationSetHealthyBowlLoanEscrowCommitmentArgs = {
|
|
67824
|
+
input: SetHealthyBowlLoanEscrowCommitmentInput;
|
|
67825
|
+
};
|
|
67826
|
+
|
|
67827
|
+
|
|
67023
67828
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
67024
67829
|
export type MutationSetHealthyBowlPaddockRestArgs = {
|
|
67025
67830
|
input: SetHealthyBowlPaddockRestInput;
|
|
@@ -70164,6 +70969,12 @@ export type MutationUpdateHealthyBowlCostCenterArgs = {
|
|
|
70164
70969
|
};
|
|
70165
70970
|
|
|
70166
70971
|
|
|
70972
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
70973
|
+
export type MutationUpdateHealthyBowlCrewArgs = {
|
|
70974
|
+
input: UpdateHealthyBowlCrewInput;
|
|
70975
|
+
};
|
|
70976
|
+
|
|
70977
|
+
|
|
70167
70978
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
70168
70979
|
export type MutationUpdateHealthyBowlCropArgs = {
|
|
70169
70980
|
input: UpdateCropInput;
|
|
@@ -70338,6 +71149,12 @@ export type MutationUpdateHealthyBowlIrrigationScheduleArgs = {
|
|
|
70338
71149
|
};
|
|
70339
71150
|
|
|
70340
71151
|
|
|
71152
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
71153
|
+
export type MutationUpdateHealthyBowlLabourEntryArgs = {
|
|
71154
|
+
input: UpdateHealthyBowlLabourEntryInput;
|
|
71155
|
+
};
|
|
71156
|
+
|
|
71157
|
+
|
|
70341
71158
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
70342
71159
|
export type MutationUpdateHealthyBowlLedgerAccountArgs = {
|
|
70343
71160
|
input: UpdateHealthyBowlLedgerAccountInput;
|
|
@@ -70467,6 +71284,12 @@ export type MutationUpdateHealthyBowlSatelliteSettingsArgs = {
|
|
|
70467
71284
|
};
|
|
70468
71285
|
|
|
70469
71286
|
|
|
71287
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
71288
|
+
export type MutationUpdateHealthyBowlSchemeApplicationStatusArgs = {
|
|
71289
|
+
input: UpdateSchemeApplicationStatusInput;
|
|
71290
|
+
};
|
|
71291
|
+
|
|
71292
|
+
|
|
70470
71293
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
70471
71294
|
export type MutationUpdateHealthyBowlSeedLotArgs = {
|
|
70472
71295
|
input: UpdateHealthyBowlSeedLotInput;
|
|
@@ -70551,6 +71374,12 @@ export type MutationUpdateHealthyBowlWholesaleOrderArgs = {
|
|
|
70551
71374
|
};
|
|
70552
71375
|
|
|
70553
71376
|
|
|
71377
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
71378
|
+
export type MutationUpdateHealthyBowlWorkerArgs = {
|
|
71379
|
+
input: UpdateHealthyBowlWorkerInput;
|
|
71380
|
+
};
|
|
71381
|
+
|
|
71382
|
+
|
|
70554
71383
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
70555
71384
|
export type MutationUpdateHousingvistaAmcContractArgs = {
|
|
70556
71385
|
id: Scalars['ID']['input'];
|
|
@@ -73133,6 +73962,16 @@ export enum OverrideType {
|
|
|
73133
73962
|
Grant = 'GRANT'
|
|
73134
73963
|
}
|
|
73135
73964
|
|
|
73965
|
+
/** The business's own vehicle cost for the same lane. Nothing is assumed: the estimate exists only when the caller supplies its own cost per km, because inventing a fleet's costs would make the comparison meaningless. */
|
|
73966
|
+
export type OwnFleetInput = {
|
|
73967
|
+
/** The business's own cost to run a vehicle one km (fuel, driver, wear), in INR. */
|
|
73968
|
+
costPerKm: Scalars['Float']['input'];
|
|
73969
|
+
/** Road distance between pickup and delivery, in km. */
|
|
73970
|
+
distanceKm: Scalars['Float']['input'];
|
|
73971
|
+
/** Fixed cost per trip (loading, dispatch), in INR. */
|
|
73972
|
+
fixedCost?: InputMaybe<Scalars['Float']['input']>;
|
|
73973
|
+
};
|
|
73974
|
+
|
|
73136
73975
|
export enum PackageKind {
|
|
73137
73976
|
A2AAgent = 'A2A_AGENT',
|
|
73138
73977
|
Agent = 'AGENT',
|
|
@@ -75775,6 +76614,8 @@ export type PlantingPlan = {
|
|
|
75775
76614
|
bedId?: Maybe<Scalars['ID']['output']>;
|
|
75776
76615
|
cropId?: Maybe<Scalars['ID']['output']>;
|
|
75777
76616
|
cropName: Scalars['String']['output'];
|
|
76617
|
+
/** BOFF-6100 — authoritative plants-per-square-metre derived with the seed figures. */
|
|
76618
|
+
density?: Maybe<Scalars['Float']['output']>;
|
|
75778
76619
|
endDate?: Maybe<Scalars['String']['output']>;
|
|
75779
76620
|
expectedYield?: Maybe<Scalars['Float']['output']>;
|
|
75780
76621
|
fertilizers: Array<Scalars['String']['output']>;
|
|
@@ -77204,6 +78045,12 @@ export type PropertyFilterInput = {
|
|
|
77204
78045
|
value?: InputMaybe<Scalars['JSON']['input']>;
|
|
77205
78046
|
};
|
|
77206
78047
|
|
|
78048
|
+
export type ProposeAgronomyDecisionsInput = {
|
|
78049
|
+
context: ContextInput;
|
|
78050
|
+
/** IRRIGATION | TREATMENT. */
|
|
78051
|
+
decisionType: Scalars['String']['input'];
|
|
78052
|
+
};
|
|
78053
|
+
|
|
77207
78054
|
export type ProvenanceRecord = {
|
|
77208
78055
|
__typename?: 'ProvenanceRecord';
|
|
77209
78056
|
assetId: Scalars['ID']['output'];
|
|
@@ -78771,6 +79618,7 @@ export type Query = {
|
|
|
78771
79618
|
assetDeadlineAlerts: Array<AssetDeadlineAlert>;
|
|
78772
79619
|
assetRegister: Array<Asset>;
|
|
78773
79620
|
assets: Array<Asset>;
|
|
79621
|
+
assignmentSuggestions: MtwAssignmentSuggestions;
|
|
78774
79622
|
/** The transcript of one of my assistant chats, oldest first. */
|
|
78775
79623
|
assistantConversationMessages: Array<AssistantHistoryMessage>;
|
|
78776
79624
|
/** My assistant chats for one product, newest first. */
|
|
@@ -78927,6 +79775,7 @@ export type Query = {
|
|
|
78927
79775
|
callSession?: Maybe<CallSession>;
|
|
78928
79776
|
capacityOverview: CapacityOverview;
|
|
78929
79777
|
cargoItem?: Maybe<MtwCargoItem>;
|
|
79778
|
+
cargoItemStats: MtwCargoItemStats;
|
|
78930
79779
|
cargoItems: Array<MtwCargoItem>;
|
|
78931
79780
|
cargoItemsCount: Scalars['Int']['output'];
|
|
78932
79781
|
changeRequest?: Maybe<ChangeRequest>;
|
|
@@ -79178,6 +80027,7 @@ export type Query = {
|
|
|
79178
80027
|
crewfoundryHealth: Scalars['String']['output'];
|
|
79179
80028
|
customNodes: NodesPaginatedResponse;
|
|
79180
80029
|
customer?: Maybe<MtwCustomer>;
|
|
80030
|
+
customerStats: MtwCustomerStats;
|
|
79181
80031
|
customers: Array<MtwCustomer>;
|
|
79182
80032
|
customersCount: Scalars['Int']['output'];
|
|
79183
80033
|
dashboard?: Maybe<AnalyticsDashboard>;
|
|
@@ -79372,6 +80222,7 @@ export type Query = {
|
|
|
79372
80222
|
/** Find shortest path between two nodes */
|
|
79373
80223
|
findShortestPath?: Maybe<GraphPath>;
|
|
79374
80224
|
findSynonyms: Array<UniversalTag>;
|
|
80225
|
+
fleetAlerts: Array<MtwFleetAlert>;
|
|
79375
80226
|
fleetStats: MtwFleetStats;
|
|
79376
80227
|
/** Tags currently assigned to a FluidGrids entity */
|
|
79377
80228
|
fluidgridsEntityTags: Array<FluidgridsTagAssignment>;
|
|
@@ -79572,7 +80423,11 @@ export type Query = {
|
|
|
79572
80423
|
getHealthyBowlActiveWithdrawals: Array<MedicationTreatment>;
|
|
79573
80424
|
getHealthyBowlAggregationLotDetail: HealthyBowlAggregationLotDetail;
|
|
79574
80425
|
getHealthyBowlAggregationLots: Array<HealthyBowlAggregationLot>;
|
|
80426
|
+
/** Decisions in this workspace, newest first. */
|
|
80427
|
+
getHealthyBowlAgronomyDecisions: Array<AgronomyDecision>;
|
|
79575
80428
|
getHealthyBowlAnalyticsData: HealthyBowlAnalyticsDataPayload;
|
|
80429
|
+
/** BOFF-6022 — download a generated analytics report as a PDF. Re-rendered from the snapshot stored on the report row, never from live data: a report downloaded next month must carry the numbers it was generated with, not today's re-derived under an old title. A report belonging to another workspace answers NOT_FOUND, so its existence is not observable. */
|
|
80430
|
+
getHealthyBowlAnalyticsReportExport: HealthyBowlAccountingExport;
|
|
79576
80431
|
/** Per-animal withdrawal roll-up + treatment history (animal detail / block gates). */
|
|
79577
80432
|
getHealthyBowlAnimalWithdrawalStatus: AnimalWithdrawalStatus;
|
|
79578
80433
|
/** BOFF-6026 — what the farm owns, owes and is worth as of a date. The document a lender asks for. */
|
|
@@ -79600,6 +80455,8 @@ export type Query = {
|
|
|
79600
80455
|
/** Filter by status (OPEN | ACKNOWLEDGED | RESOLVED | DISMISSED) and/or type. */
|
|
79601
80456
|
getHealthyBowlComplianceFlags: Array<ComplianceFlag>;
|
|
79602
80457
|
getHealthyBowlComplianceOverview: HealthyBowlComplianceOverviewPayload;
|
|
80458
|
+
/** BOFF-6043 — the whole audit evidence bundle as one PDF: certifications with their checklists, compliance documents and audit history. Says so plainly when it is truncated. A compliance document that quietly omits rows is worse than one that refuses — an auditor reads absence as "this farm has none". */
|
|
80459
|
+
getHealthyBowlCompliancePack: ComplianceExportFile;
|
|
79603
80460
|
getHealthyBowlCompostBatches: Array<CompostBatch>;
|
|
79604
80461
|
getHealthyBowlConsultantAssignments: Array<HealthyBowlConsultantAssignment>;
|
|
79605
80462
|
getHealthyBowlConsultations: Array<Consultation>;
|
|
@@ -79621,6 +80478,8 @@ export type Query = {
|
|
|
79621
80478
|
getHealthyBowlCoopOverview: HealthyBowlCoopOverview;
|
|
79622
80479
|
getHealthyBowlCostByCrop: HealthyBowlCostByCropReport;
|
|
79623
80480
|
getHealthyBowlCostCenters: Array<HealthyBowlCostCenter>;
|
|
80481
|
+
getHealthyBowlCrewTimesheet: HealthyBowlCrewTimesheet;
|
|
80482
|
+
getHealthyBowlCrews: Array<HealthyBowlCrew>;
|
|
79624
80483
|
/** Fields-list table: every field with its NDVI health score, trend, stressed-zone count and yield estimate. */
|
|
79625
80484
|
getHealthyBowlCropHealthOverview: HbCropHealthOverview;
|
|
79626
80485
|
getHealthyBowlCropsData: HealthyBowlCropsDataPayload;
|
|
@@ -79640,6 +80499,8 @@ export type Query = {
|
|
|
79640
80499
|
/** Distribution dashboard summary (KPI cards + per-channel breakdown). */
|
|
79641
80500
|
getHealthyBowlDistributionSummary: DistributionSummary;
|
|
79642
80501
|
getHealthyBowlEudrStatement: HbEudrStatement;
|
|
80502
|
+
/** BOFF-6030 — bookable slots for a consultant, taken ones marked unavailable. Derived from the consultant's weekly rules minus what is already booked, rather than read from a materialised calendar: materialising forward needs a horizon, and a horizon silently runs out. */
|
|
80503
|
+
getHealthyBowlExpertAvailability: Array<ConsultSlot>;
|
|
79643
80504
|
/** Everything on this farm that wants a human, in one ranked list. `horizonDays` bounds the DATED signals (withdrawal clear dates, scheme deadlines); omitted it defaults to 7 and it is clamped to 1–90. Live signals (sensor alerts, weather events, stressed zones) are not horizon-filtered — they are already now. */
|
|
79644
80505
|
getHealthyBowlFarmAttentionDigest: HealthyBowlAttentionDigest;
|
|
79645
80506
|
/** Sponsor: one contract by id. */
|
|
@@ -79675,6 +80536,8 @@ export type Query = {
|
|
|
79675
80536
|
getHealthyBowlGrowSpaces: Array<GrowSpace>;
|
|
79676
80537
|
getHealthyBowlIcsData: HealthyBowlIcsDataPayload;
|
|
79677
80538
|
getHealthyBowlIcsGroupDetail: IcsGroupDetail;
|
|
80539
|
+
/** BOFF-6043 — the ICS group report: members, conversion status and inspection coverage. Grower mobile numbers are deliberately omitted — an auditor verifying an internal control system does not need them, and a downloadable list of farmers' phone numbers in every audit bundle cannot be recalled once it exists. */
|
|
80540
|
+
getHealthyBowlIcsGroupReport: ComplianceExportFile;
|
|
79678
80541
|
getHealthyBowlIcsGrowerDetail: IcsGrowerDetail;
|
|
79679
80542
|
/** Budget-vs-Actual + Input-Mix + cost-by-crop analytics rolled up from the plan rows. */
|
|
79680
80543
|
getHealthyBowlInputBudgetAnalytics: HealthyBowlInputBudgetAnalytics;
|
|
@@ -79693,11 +80556,15 @@ export type Query = {
|
|
|
79693
80556
|
getHealthyBowlInvoicePdf: HealthyBowlInvoicePdf;
|
|
79694
80557
|
getHealthyBowlJournalEntries: Array<HealthyBowlJournalEntry>;
|
|
79695
80558
|
getHealthyBowlJournalEntry?: Maybe<HealthyBowlJournalEntry>;
|
|
80559
|
+
getHealthyBowlLabourEntries: Array<HealthyBowlLabourEntry>;
|
|
80560
|
+
getHealthyBowlLabourSummary: HealthyBowlLabourSummary;
|
|
79696
80561
|
getHealthyBowlLivestockData: HealthyBowlLivestockDataPayload;
|
|
79697
80562
|
getHealthyBowlLoanFacilitation: HealthyBowlLoanFacilitation;
|
|
79698
80563
|
getHealthyBowlLoanFacilitations: Array<HealthyBowlLoanFacilitation>;
|
|
79699
80564
|
/** Exact balances, immutable schedule, and externally completed money-event history for one loan. */
|
|
79700
80565
|
getHealthyBowlLoanFinancialDetail: HealthyBowlLoanFinancialDetail;
|
|
80566
|
+
/** BOFF-6077 — the release schedule for one facilitated loan, in sequence order. */
|
|
80567
|
+
getHealthyBowlLoanMilestones: Array<HealthyBowlLoanMilestone>;
|
|
79701
80568
|
/** Machinery spend AssetHandler holds for this workspace (BOFF-6121), flagged with whether it has already been imported into the HealthyBowl ledger. Reads are best-effort across the service boundary: when AssetHandler is unreachable this returns an empty list rather than failing, so the Financial section stays usable. */
|
|
79702
80569
|
getHealthyBowlMachinerySpend: Array<HealthyBowlMachinerySpendRow>;
|
|
79703
80570
|
/** A commodity's daily min/modal/max trend over the trailing `days` window (default 30). */
|
|
@@ -79790,6 +80657,7 @@ export type Query = {
|
|
|
79790
80657
|
getHealthyBowlWithdrawalCalendar: Array<WithdrawalCalendarEntry>;
|
|
79791
80658
|
/** The four dashboard stat cards. */
|
|
79792
80659
|
getHealthyBowlWithdrawalSummary: WithdrawalSummary;
|
|
80660
|
+
getHealthyBowlWorkers: Array<HealthyBowlWorker>;
|
|
79793
80661
|
/** The live rule-based season yield forecast for a field (computed from stored NDVI history). */
|
|
79794
80662
|
getHealthyBowlYieldForecast: HbYieldForecast;
|
|
79795
80663
|
/** Saved yield scenarios for a field. */
|
|
@@ -80302,6 +81170,8 @@ export type Query = {
|
|
|
80302
81170
|
healthyBowlAnimalDepth: HealthyBowlAnimalDepthRecord;
|
|
80303
81171
|
/** Animal groups with computed member counts. */
|
|
80304
81172
|
healthyBowlAnimalGroups: Array<HealthyBowlAnimalGroup>;
|
|
81173
|
+
/** An animal's pedigree — ancestors N generations up, plus its recorded offspring. `ancestorDepth` defaults to 4 and is clamped to 1..8; `offspringDepth` defaults to 1 (direct children) and is clamped to 1..4. A depth outside the range is clamped rather than rejected — it reads as "as much as you can give me" — and the applied value is echoed back on the payload. Culled/sold ancestors are RETURNED with `archived: true` rather than dropped, so a branch does not vanish when a cow is sold (BOFF-6011). Offspring are live-only. Reuses the seeded `healthybowl_animal` resource like every other query here — no new RBAC resource, so no seed-gap 403. */
|
|
81174
|
+
healthyBowlAnimalPedigree: HealthyBowlAnimalPedigree;
|
|
80305
81175
|
/** Read a single auction by id. A live auction past endTime auto-closes on read. */
|
|
80306
81176
|
healthyBowlAuction?: Maybe<Auction>;
|
|
80307
81177
|
/** List auctions for the workspace. Pass status to filter (draft/live/closed/cancelled). Live auctions past endTime auto-close on read. */
|
|
@@ -80320,7 +81190,7 @@ export type Query = {
|
|
|
80320
81190
|
healthyBowlGrazing: HealthyBowlGrazingView;
|
|
80321
81191
|
/** Grazing events for one paddock or one animal, newest first. */
|
|
80322
81192
|
healthyBowlGrazingEvents: Array<HealthyBowlGrazingEvent>;
|
|
80323
|
-
/** Deep herd view: one row per animal with group/BCS/ADG/withdrawal + a herd compliance summary.
|
|
81193
|
+
/** Deep herd view: one row per animal with group/BCS/ADG/withdrawal + a herd compliance summary. `search` matches tag number, name or EID (case-insensitive, substring) across the whole herd; `groups[].animalCount` always counts the herd, never the matches. Archived (soft-deleted) animals are excluded unless asked for — they are still valid dam/sire references, which is what `includeArchived` exists for (BOFF-6195). They are additive to `rows` ONLY: `summary` and every `groups[].animalCount` always describe the LIVE herd, so opening a genealogy picker can never move the compliance figures on the herd list. */
|
|
80324
81194
|
healthyBowlHerdDepth: HealthyBowlHerdDepthView;
|
|
80325
81195
|
/** Orders placed AGAINST this farm by a buyer in another workspace. Cross-workspace by necessity — the row lives in the buyer's workspace. `sellerWorkspaceId` is pinned to the caller's own workspace, so a farm can only ever see orders naming itself as seller. */
|
|
80326
81196
|
healthyBowlIncomingOrders: Array<Order>;
|
|
@@ -80350,6 +81220,8 @@ export type Query = {
|
|
|
80350
81220
|
healthyBowlPlantCatalog: Array<PlantCatalogEntry>;
|
|
80351
81221
|
/** I-7 — list planting/execution activities, optionally scoped to a plan or bed. */
|
|
80352
81222
|
healthyBowlPlantingActivities: Array<PlantingActivity>;
|
|
81223
|
+
/** BOFF-6100 — bed capacity and seed rate for a field, derived on the server. The same maths also runs in the browser so a farmer dragging a spacing slider sees numbers move without a round trip. This is the copy that decides what gets *written*: spec 02 §3.8 asks for a pure server-side calculator because two clients could otherwise disagree about plants-per-area for the same field. */
|
|
81224
|
+
healthyBowlPlantingEstimate: HealthyBowlPlantingEstimate;
|
|
80353
81225
|
/** I-8 — planned-vs-actual execution rollup for a single planting plan. */
|
|
80354
81226
|
healthyBowlPlantingPlanExecution: HealthyBowlPlanExecution;
|
|
80355
81227
|
/** Read a single seed lot by id. */
|
|
@@ -80503,8 +81375,10 @@ export type Query = {
|
|
|
80503
81375
|
introspectNode?: Maybe<NodeIntrospection>;
|
|
80504
81376
|
inventoryItem?: Maybe<MtwInventoryItem>;
|
|
80505
81377
|
inventoryItems: Array<MtwInventoryItem>;
|
|
81378
|
+
inventoryItemsCount: Scalars['Int']['output'];
|
|
80506
81379
|
inventoryStats: MtwInventoryStats;
|
|
80507
81380
|
inventoryTransactions: Array<MtwInventoryTransaction>;
|
|
81381
|
+
inventoryTransactionsCount: Scalars['Int']['output'];
|
|
80508
81382
|
/** Get a single invitation by ID. This is the FE invitation-acceptance preview endpoint, so it must work for the invitee before they're a member of the target workspace. We can't gate it on `scopeType: "wspace"` (no workspace token yet), but we MUST require authentication to prevent unauthenticated UUID-enumeration leaking PII (email, roleIds, status). `scopeType: "self"` is the right gateway primitive here — it asserts a valid actor without requiring workspace context — and the resolver enforces the actual ownership predicate (caller is the invitation's recipient OR holds a workspace token for the invitation's workspace). Reviewed: PR #66 claude (HIGH SEC). */
|
|
80509
81383
|
invitation?: Maybe<Invitation>;
|
|
80510
81384
|
/** Get multiple invitations with filtering and pagination. Workspace scope is read from gateway context (x-workspace-id header). */
|
|
@@ -80777,6 +81651,7 @@ export type Query = {
|
|
|
80777
81651
|
myNavPreferences: NavPreferences;
|
|
80778
81652
|
/** Type C self-list: delivery jobs assigned to the CALLING driver that are out for delivery/in transit and still awaiting ePOD capture. Feeds the driver-facing capture flow's job picker. */
|
|
80779
81653
|
myPendingEpodDeliveryJobs: Array<MtwDeliveryJob>;
|
|
81654
|
+
myPendingEpodDeliveryJobsCount: Scalars['Int']['output'];
|
|
80780
81655
|
/** Get all pending invitations for the current authenticated user. Self-scoped: the resolver resolves the invitee email server-side from ctx.actorId; no client-supplied identity is accepted. */
|
|
80781
81656
|
myPendingInvitations: Array<Invitation>;
|
|
80782
81657
|
/** Invitee-side: list pending invites whose `inviteeEmail` matches the caller's email (resolved from the tenant backend). `scopeType: "self"` because access is the user's own email — membership in any workspace is irrelevant. */
|
|
@@ -81198,6 +82073,7 @@ export type Query = {
|
|
|
81198
82073
|
/** List roles with bounded offset metadata for export/reporting clients. */
|
|
81199
82074
|
rolesPage: RolePage;
|
|
81200
82075
|
route?: Maybe<MtwRoute>;
|
|
82076
|
+
routeStats: MtwRouteStats;
|
|
81201
82077
|
routes: Array<MtwRoute>;
|
|
81202
82078
|
routesCount: Scalars['Int']['output'];
|
|
81203
82079
|
runningTimers: Array<RunningTimer>;
|
|
@@ -81319,6 +82195,7 @@ export type Query = {
|
|
|
81319
82195
|
shipmentTracking: Array<MtwTrackingEvent>;
|
|
81320
82196
|
shipments: Array<MtwShipment>;
|
|
81321
82197
|
shipmentsCount: Scalars['Int']['output'];
|
|
82198
|
+
shippingQuotes: MtwShippingQuoteResult;
|
|
81322
82199
|
siemDestinations: Array<SiemDestination>;
|
|
81323
82200
|
softwareAssets: Array<SoftwareAsset>;
|
|
81324
82201
|
subAgent?: Maybe<SubAiAgent>;
|
|
@@ -81665,6 +82542,7 @@ export type Query = {
|
|
|
81665
82542
|
visibilityRules: Array<VisibilityRule>;
|
|
81666
82543
|
waitForSandboxRunning?: Maybe<Sandbox>;
|
|
81667
82544
|
warehouse?: Maybe<MtwWarehouse>;
|
|
82545
|
+
warehouseStats: MtwWarehouseStats;
|
|
81668
82546
|
warehouses: Array<MtwWarehouse>;
|
|
81669
82547
|
warehousesCount: Scalars['Int']['output'];
|
|
81670
82548
|
/** Get specific webhook by ID */
|
|
@@ -82477,6 +83355,13 @@ export type QueryAssetsArgs = {
|
|
|
82477
83355
|
};
|
|
82478
83356
|
|
|
82479
83357
|
|
|
83358
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
83359
|
+
export type QueryAssignmentSuggestionsArgs = {
|
|
83360
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
83361
|
+
routeId: Scalars['ID']['input'];
|
|
83362
|
+
};
|
|
83363
|
+
|
|
83364
|
+
|
|
82480
83365
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
82481
83366
|
export type QueryAssistantConversationMessagesArgs = {
|
|
82482
83367
|
conversationId: Scalars['ID']['input'];
|
|
@@ -86254,12 +87139,26 @@ export type QueryGetHealthyBowlAggregationLotsArgs = {
|
|
|
86254
87139
|
};
|
|
86255
87140
|
|
|
86256
87141
|
|
|
87142
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
87143
|
+
export type QueryGetHealthyBowlAgronomyDecisionsArgs = {
|
|
87144
|
+
context: ContextInput;
|
|
87145
|
+
filter?: InputMaybe<AgronomyDecisionFilterInput>;
|
|
87146
|
+
};
|
|
87147
|
+
|
|
87148
|
+
|
|
86257
87149
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
86258
87150
|
export type QueryGetHealthyBowlAnalyticsDataArgs = {
|
|
86259
87151
|
context: ContextInput;
|
|
86260
87152
|
};
|
|
86261
87153
|
|
|
86262
87154
|
|
|
87155
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
87156
|
+
export type QueryGetHealthyBowlAnalyticsReportExportArgs = {
|
|
87157
|
+
context: ContextInput;
|
|
87158
|
+
reportId: Scalars['ID']['input'];
|
|
87159
|
+
};
|
|
87160
|
+
|
|
87161
|
+
|
|
86263
87162
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
86264
87163
|
export type QueryGetHealthyBowlAnimalWithdrawalStatusArgs = {
|
|
86265
87164
|
animalId: Scalars['ID']['input'];
|
|
@@ -86391,6 +87290,12 @@ export type QueryGetHealthyBowlComplianceOverviewArgs = {
|
|
|
86391
87290
|
};
|
|
86392
87291
|
|
|
86393
87292
|
|
|
87293
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
87294
|
+
export type QueryGetHealthyBowlCompliancePackArgs = {
|
|
87295
|
+
context: ContextInput;
|
|
87296
|
+
};
|
|
87297
|
+
|
|
87298
|
+
|
|
86394
87299
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
86395
87300
|
export type QueryGetHealthyBowlCompostBatchesArgs = {
|
|
86396
87301
|
context: ContextInput;
|
|
@@ -86485,6 +87390,21 @@ export type QueryGetHealthyBowlCostCentersArgs = {
|
|
|
86485
87390
|
};
|
|
86486
87391
|
|
|
86487
87392
|
|
|
87393
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
87394
|
+
export type QueryGetHealthyBowlCrewTimesheetArgs = {
|
|
87395
|
+
context: ContextInput;
|
|
87396
|
+
crewId: Scalars['ID']['input'];
|
|
87397
|
+
weekStart?: InputMaybe<Scalars['String']['input']>;
|
|
87398
|
+
};
|
|
87399
|
+
|
|
87400
|
+
|
|
87401
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
87402
|
+
export type QueryGetHealthyBowlCrewsArgs = {
|
|
87403
|
+
activeOnly?: InputMaybe<Scalars['Boolean']['input']>;
|
|
87404
|
+
context: ContextInput;
|
|
87405
|
+
};
|
|
87406
|
+
|
|
87407
|
+
|
|
86488
87408
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
86489
87409
|
export type QueryGetHealthyBowlCropHealthOverviewArgs = {
|
|
86490
87410
|
context: ContextInput;
|
|
@@ -86600,6 +87520,13 @@ export type QueryGetHealthyBowlEudrStatementArgs = {
|
|
|
86600
87520
|
};
|
|
86601
87521
|
|
|
86602
87522
|
|
|
87523
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
87524
|
+
export type QueryGetHealthyBowlExpertAvailabilityArgs = {
|
|
87525
|
+
context: ContextInput;
|
|
87526
|
+
input: HealthyBowlExpertAvailabilityInput;
|
|
87527
|
+
};
|
|
87528
|
+
|
|
87529
|
+
|
|
86603
87530
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
86604
87531
|
export type QueryGetHealthyBowlFarmAttentionDigestArgs = {
|
|
86605
87532
|
context: ContextInput;
|
|
@@ -86817,6 +87744,13 @@ export type QueryGetHealthyBowlIcsGroupDetailArgs = {
|
|
|
86817
87744
|
};
|
|
86818
87745
|
|
|
86819
87746
|
|
|
87747
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
87748
|
+
export type QueryGetHealthyBowlIcsGroupReportArgs = {
|
|
87749
|
+
context: ContextInput;
|
|
87750
|
+
icsGroupId: Scalars['ID']['input'];
|
|
87751
|
+
};
|
|
87752
|
+
|
|
87753
|
+
|
|
86820
87754
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
86821
87755
|
export type QueryGetHealthyBowlIcsGrowerDetailArgs = {
|
|
86822
87756
|
context: ContextInput;
|
|
@@ -86917,6 +87851,27 @@ export type QueryGetHealthyBowlJournalEntryArgs = {
|
|
|
86917
87851
|
};
|
|
86918
87852
|
|
|
86919
87853
|
|
|
87854
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
87855
|
+
export type QueryGetHealthyBowlLabourEntriesArgs = {
|
|
87856
|
+
context: ContextInput;
|
|
87857
|
+
crewId?: InputMaybe<Scalars['ID']['input']>;
|
|
87858
|
+
endDate?: InputMaybe<Scalars['String']['input']>;
|
|
87859
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
87860
|
+
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
87861
|
+
startDate?: InputMaybe<Scalars['String']['input']>;
|
|
87862
|
+
status?: InputMaybe<Scalars['String']['input']>;
|
|
87863
|
+
workerId?: InputMaybe<Scalars['ID']['input']>;
|
|
87864
|
+
};
|
|
87865
|
+
|
|
87866
|
+
|
|
87867
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
87868
|
+
export type QueryGetHealthyBowlLabourSummaryArgs = {
|
|
87869
|
+
context: ContextInput;
|
|
87870
|
+
endDate?: InputMaybe<Scalars['String']['input']>;
|
|
87871
|
+
startDate?: InputMaybe<Scalars['String']['input']>;
|
|
87872
|
+
};
|
|
87873
|
+
|
|
87874
|
+
|
|
86920
87875
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
86921
87876
|
export type QueryGetHealthyBowlLivestockDataArgs = {
|
|
86922
87877
|
context: ContextInput;
|
|
@@ -86944,6 +87899,13 @@ export type QueryGetHealthyBowlLoanFinancialDetailArgs = {
|
|
|
86944
87899
|
};
|
|
86945
87900
|
|
|
86946
87901
|
|
|
87902
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
87903
|
+
export type QueryGetHealthyBowlLoanMilestonesArgs = {
|
|
87904
|
+
context: ContextInput;
|
|
87905
|
+
loanId: Scalars['ID']['input'];
|
|
87906
|
+
};
|
|
87907
|
+
|
|
87908
|
+
|
|
86947
87909
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
86948
87910
|
export type QueryGetHealthyBowlMachinerySpendArgs = {
|
|
86949
87911
|
context: ContextInput;
|
|
@@ -87350,6 +88312,14 @@ export type QueryGetHealthyBowlWithdrawalSummaryArgs = {
|
|
|
87350
88312
|
};
|
|
87351
88313
|
|
|
87352
88314
|
|
|
88315
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
88316
|
+
export type QueryGetHealthyBowlWorkersArgs = {
|
|
88317
|
+
activeOnly?: InputMaybe<Scalars['Boolean']['input']>;
|
|
88318
|
+
context: ContextInput;
|
|
88319
|
+
search?: InputMaybe<Scalars['String']['input']>;
|
|
88320
|
+
};
|
|
88321
|
+
|
|
88322
|
+
|
|
87353
88323
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
87354
88324
|
export type QueryGetHealthyBowlYieldForecastArgs = {
|
|
87355
88325
|
context: ContextInput;
|
|
@@ -89530,6 +90500,15 @@ export type QueryHealthyBowlAnimalGroupsArgs = {
|
|
|
89530
90500
|
};
|
|
89531
90501
|
|
|
89532
90502
|
|
|
90503
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
90504
|
+
export type QueryHealthyBowlAnimalPedigreeArgs = {
|
|
90505
|
+
ancestorDepth?: InputMaybe<Scalars['Int']['input']>;
|
|
90506
|
+
animalId: Scalars['ID']['input'];
|
|
90507
|
+
context: ContextInput;
|
|
90508
|
+
offspringDepth?: InputMaybe<Scalars['Int']['input']>;
|
|
90509
|
+
};
|
|
90510
|
+
|
|
90511
|
+
|
|
89533
90512
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
89534
90513
|
export type QueryHealthyBowlAuctionArgs = {
|
|
89535
90514
|
context: ContextInput;
|
|
@@ -89607,6 +90586,7 @@ export type QueryHealthyBowlGrazingEventsArgs = {
|
|
|
89607
90586
|
export type QueryHealthyBowlHerdDepthArgs = {
|
|
89608
90587
|
context: ContextInput;
|
|
89609
90588
|
groupId?: InputMaybe<Scalars['ID']['input']>;
|
|
90589
|
+
includeArchived?: InputMaybe<Scalars['Boolean']['input']>;
|
|
89610
90590
|
search?: InputMaybe<Scalars['String']['input']>;
|
|
89611
90591
|
};
|
|
89612
90592
|
|
|
@@ -89727,6 +90707,13 @@ export type QueryHealthyBowlPlantingActivitiesArgs = {
|
|
|
89727
90707
|
};
|
|
89728
90708
|
|
|
89729
90709
|
|
|
90710
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
90711
|
+
export type QueryHealthyBowlPlantingEstimateArgs = {
|
|
90712
|
+
context: ContextInput;
|
|
90713
|
+
input: HealthyBowlPlantingEstimateInput;
|
|
90714
|
+
};
|
|
90715
|
+
|
|
90716
|
+
|
|
89730
90717
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
89731
90718
|
export type QueryHealthyBowlPlantingPlanExecutionArgs = {
|
|
89732
90719
|
context: ContextInput;
|
|
@@ -90529,6 +91516,18 @@ export type QueryInventoryItemsArgs = {
|
|
|
90529
91516
|
};
|
|
90530
91517
|
|
|
90531
91518
|
|
|
91519
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
91520
|
+
export type QueryInventoryItemsCountArgs = {
|
|
91521
|
+
filter?: InputMaybe<InventoryFilterInput>;
|
|
91522
|
+
};
|
|
91523
|
+
|
|
91524
|
+
|
|
91525
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
91526
|
+
export type QueryInventoryStatsArgs = {
|
|
91527
|
+
filter?: InputMaybe<InventoryFilterInput>;
|
|
91528
|
+
};
|
|
91529
|
+
|
|
91530
|
+
|
|
90532
91531
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
90533
91532
|
export type QueryInventoryTransactionsArgs = {
|
|
90534
91533
|
filter?: InputMaybe<InventoryFilterInput>;
|
|
@@ -90536,6 +91535,12 @@ export type QueryInventoryTransactionsArgs = {
|
|
|
90536
91535
|
};
|
|
90537
91536
|
|
|
90538
91537
|
|
|
91538
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
91539
|
+
export type QueryInventoryTransactionsCountArgs = {
|
|
91540
|
+
filter?: InputMaybe<InventoryFilterInput>;
|
|
91541
|
+
};
|
|
91542
|
+
|
|
91543
|
+
|
|
90539
91544
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
90540
91545
|
export type QueryInvitationArgs = {
|
|
90541
91546
|
id: Scalars['ID']['input'];
|
|
@@ -94230,6 +95235,12 @@ export type QueryShipmentsCountArgs = {
|
|
|
94230
95235
|
};
|
|
94231
95236
|
|
|
94232
95237
|
|
|
95238
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
95239
|
+
export type QueryShippingQuotesArgs = {
|
|
95240
|
+
input: ShippingQuoteInput;
|
|
95241
|
+
};
|
|
95242
|
+
|
|
95243
|
+
|
|
94233
95244
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
94234
95245
|
export type QuerySiemDestinationsArgs = {
|
|
94235
95246
|
workspaceId: Scalars['ID']['input'];
|
|
@@ -96476,6 +97487,17 @@ export type RecordTimeCampusImpersonationInput = {
|
|
|
96476
97487
|
workspaceId: Scalars['ID']['input'];
|
|
96477
97488
|
};
|
|
96478
97489
|
|
|
97490
|
+
export type RecordVehicleServiceInput = {
|
|
97491
|
+
/** Days until the next service. Sets nextServiceDueDate. */
|
|
97492
|
+
intervalDays?: InputMaybe<Scalars['Int']['input']>;
|
|
97493
|
+
/** Kilometres until the next service. Sets nextServiceDueMileage (needs mileage). */
|
|
97494
|
+
intervalKm?: InputMaybe<Scalars['Float']['input']>;
|
|
97495
|
+
/** Odometer reading at service. Also updates the vehicle mileage when higher. */
|
|
97496
|
+
mileage?: InputMaybe<Scalars['Float']['input']>;
|
|
97497
|
+
/** When the service was performed. Defaults to now. */
|
|
97498
|
+
serviceDate?: InputMaybe<Scalars['DateTime']['input']>;
|
|
97499
|
+
};
|
|
97500
|
+
|
|
96479
97501
|
export type RecordWorkPatternInput = {
|
|
96480
97502
|
breakHours: Scalars['Float']['input'];
|
|
96481
97503
|
context?: InputMaybe<ContextInput>;
|
|
@@ -96753,6 +97775,15 @@ export type Release = {
|
|
|
96753
97775
|
workspaceId: Scalars['String']['output'];
|
|
96754
97776
|
};
|
|
96755
97777
|
|
|
97778
|
+
export type ReleaseHealthyBowlLoanMilestoneInput = {
|
|
97779
|
+
context: ContextInput;
|
|
97780
|
+
/** The HarvestRecord or PlantingActivity id proving the milestone. Verified in-workspace. */
|
|
97781
|
+
evidenceId?: InputMaybe<Scalars['ID']['input']>;
|
|
97782
|
+
/** Overrides the milestone's own evidenceType, if it was left unset at creation. */
|
|
97783
|
+
evidenceType?: InputMaybe<Scalars['String']['input']>;
|
|
97784
|
+
id: Scalars['ID']['input'];
|
|
97785
|
+
};
|
|
97786
|
+
|
|
96756
97787
|
export type ReleaseLockInput = {
|
|
96757
97788
|
/** Force release (admin only) */
|
|
96758
97789
|
force?: InputMaybe<Scalars['Boolean']['input']>;
|
|
@@ -97053,6 +98084,21 @@ export type ReportGovAiTokenUsageInput = {
|
|
|
97053
98084
|
totalTokens?: InputMaybe<Scalars['Int']['input']>;
|
|
97054
98085
|
};
|
|
97055
98086
|
|
|
98087
|
+
/** A completed assistant turn's token usage, reported by the client so it can be charged against `healthybowl.ai.credits`. The credit amount is NEVER client-supplied — the resolver prices the turn from billing's per-model table. These fields only identify the turn and its size. */
|
|
98088
|
+
export type ReportHealthyBowlAiTokenUsageInput = {
|
|
98089
|
+
context: ContextInput;
|
|
98090
|
+
/** Prompt (input) tokens consumed by the turn. */
|
|
98091
|
+
inputTokens: Scalars['Int']['input'];
|
|
98092
|
+
/** The assistant message this turn produced. Forms the idempotency hash with sessionId, so a retried or duplicated report never charges twice. */
|
|
98093
|
+
messageId: Scalars['ID']['input'];
|
|
98094
|
+
/** The turn's model id (e.g. "anthropic/claude-sonnet-4-6"). Selects the per-token prices used to weight the charge; an unknown model falls back to billing's `*default*` row rather than charging nothing. */
|
|
98095
|
+
model: Scalars['String']['input'];
|
|
98096
|
+
/** Completion (output) tokens produced by the turn. */
|
|
98097
|
+
outputTokens: Scalars['Int']['input'];
|
|
98098
|
+
/** The assistant session the tokens were consumed in. */
|
|
98099
|
+
sessionId: Scalars['ID']['input'];
|
|
98100
|
+
};
|
|
98101
|
+
|
|
97056
98102
|
export type ReportMessagePayload = {
|
|
97057
98103
|
__typename?: 'ReportMessagePayload';
|
|
97058
98104
|
messageId: Scalars['ID']['output'];
|
|
@@ -98865,6 +99911,8 @@ export type SchemeApplication = {
|
|
|
98865
99911
|
appliedDate: Scalars['String']['output'];
|
|
98866
99912
|
/** The client-generated idempotency key this application was created with (BOFF-4407 offline outbox), null for applications created online before this field existed. */
|
|
98867
99913
|
clientMutationId?: Maybe<Scalars['String']['output']>;
|
|
99914
|
+
/** The evidence attached to this application, in slot order. Empty for applications created before BOFF-6111, which recorded only a checkbox affirmation in `remarks`. */
|
|
99915
|
+
documents: Array<SchemeApplicationDocument>;
|
|
98868
99916
|
id: Scalars['ID']['output'];
|
|
98869
99917
|
remarks?: Maybe<Scalars['String']['output']>;
|
|
98870
99918
|
schemeId: Scalars['String']['output'];
|
|
@@ -98872,6 +99920,26 @@ export type SchemeApplication = {
|
|
|
98872
99920
|
status: Scalars['String']['output'];
|
|
98873
99921
|
};
|
|
98874
99922
|
|
|
99923
|
+
/** One supporting document attached to a scheme application (BOFF-6111). */
|
|
99924
|
+
export type SchemeApplicationDocument = {
|
|
99925
|
+
__typename?: 'SchemeApplicationDocument';
|
|
99926
|
+
/** Opaque wspace-files-svc id. Resolve a download URL with `getFileDownloadUrl`. */
|
|
99927
|
+
fileId: Scalars['String']['output'];
|
|
99928
|
+
fileName?: Maybe<Scalars['String']['output']>;
|
|
99929
|
+
/** Which scheme checklist requirement this file satisfies. */
|
|
99930
|
+
slot: Scalars['String']['output'];
|
|
99931
|
+
uploadedAt: Scalars['String']['output'];
|
|
99932
|
+
};
|
|
99933
|
+
|
|
99934
|
+
/** One supporting document being attached to a scheme application (BOFF-6111). */
|
|
99935
|
+
export type SchemeApplicationDocumentInput = {
|
|
99936
|
+
/** Opaque wspace-files-svc id from a completed upload. Blank values are discarded; completed, active workspace files are verified server-side before an application is created. */
|
|
99937
|
+
fileId: Scalars['String']['input'];
|
|
99938
|
+
fileName?: InputMaybe<Scalars['String']['input']>;
|
|
99939
|
+
/** Which scheme checklist requirement this file satisfies. Any other value is rejected with BAD_USER_INPUT. */
|
|
99940
|
+
slot: Scalars['String']['input'];
|
|
99941
|
+
};
|
|
99942
|
+
|
|
98875
99943
|
/** BOFF-6110 — the eligibility verdict for one scheme against one workspace's farm data. */
|
|
98876
99944
|
export type SchemeEligibility = {
|
|
98877
99945
|
__typename?: 'SchemeEligibility';
|
|
@@ -100847,6 +101915,19 @@ export type SetAgentVisibilityInput = {
|
|
|
100847
101915
|
visibility: VibecontrolsAgentVisibility;
|
|
100848
101916
|
};
|
|
100849
101917
|
|
|
101918
|
+
export type SetHealthyBowlConsultAvailabilityInput = {
|
|
101919
|
+
consultantId: Scalars['String']['input'];
|
|
101920
|
+
context: ContextInput;
|
|
101921
|
+
/** 0 = Sunday … 6 = Saturday. */
|
|
101922
|
+
dayOfWeek: Scalars['Int']['input'];
|
|
101923
|
+
endTime: Scalars['String']['input'];
|
|
101924
|
+
slotMinutes?: InputMaybe<Scalars['Int']['input']>;
|
|
101925
|
+
/** Local wall-clock HH:MM — a consultant's working day does not move when the clocks do. */
|
|
101926
|
+
startTime: Scalars['String']['input'];
|
|
101927
|
+
/** ACTIVE or PAUSED. */
|
|
101928
|
+
status?: InputMaybe<Scalars['String']['input']>;
|
|
101929
|
+
};
|
|
101930
|
+
|
|
100850
101931
|
export type SetHealthyBowlEntityTagsInput = {
|
|
100851
101932
|
context: ContextInput;
|
|
100852
101933
|
entityId: Scalars['ID']['input'];
|
|
@@ -100865,6 +101946,13 @@ export type SetHealthyBowlInsuranceDocumentInput = {
|
|
|
100865
101946
|
notApplicable?: InputMaybe<Scalars['Boolean']['input']>;
|
|
100866
101947
|
};
|
|
100867
101948
|
|
|
101949
|
+
export type SetHealthyBowlLoanEscrowCommitmentInput = {
|
|
101950
|
+
context: ContextInput;
|
|
101951
|
+
/** What the lender has agreed to release across this loan. Cannot exceed the loan amount. */
|
|
101952
|
+
escrowCommitted: Scalars['Float']['input'];
|
|
101953
|
+
id: Scalars['ID']['input'];
|
|
101954
|
+
};
|
|
101955
|
+
|
|
100868
101956
|
export type SetHealthyBowlPaddockRestInput = {
|
|
100869
101957
|
context: ContextInput;
|
|
100870
101958
|
paddockId: Scalars['ID']['input'];
|
|
@@ -101347,11 +102435,13 @@ export type ShipmentFilterInput = {
|
|
|
101347
102435
|
carrierId?: InputMaybe<Scalars['ID']['input']>;
|
|
101348
102436
|
customerId?: InputMaybe<Scalars['ID']['input']>;
|
|
101349
102437
|
deliveryJobId?: InputMaybe<Scalars['ID']['input']>;
|
|
102438
|
+
driverId?: InputMaybe<Scalars['ID']['input']>;
|
|
101350
102439
|
isMultiModal?: InputMaybe<Scalars['Boolean']['input']>;
|
|
101351
102440
|
primaryMode?: InputMaybe<TransportMode>;
|
|
101352
102441
|
search?: InputMaybe<Scalars['String']['input']>;
|
|
101353
102442
|
status?: InputMaybe<ShipmentStatus>;
|
|
101354
102443
|
storeOrderId?: InputMaybe<Scalars['ID']['input']>;
|
|
102444
|
+
vehicleId?: InputMaybe<Scalars['ID']['input']>;
|
|
101355
102445
|
};
|
|
101356
102446
|
|
|
101357
102447
|
export enum ShipmentLegStatus {
|
|
@@ -101372,6 +102462,21 @@ export enum ShipmentStatus {
|
|
|
101372
102462
|
Returned = 'RETURNED'
|
|
101373
102463
|
}
|
|
101374
102464
|
|
|
102465
|
+
export type ShippingQuoteInput = {
|
|
102466
|
+
/** Cash on delivery. */
|
|
102467
|
+
cod?: InputMaybe<Scalars['Boolean']['input']>;
|
|
102468
|
+
deliveryPostcode: Scalars['String']['input'];
|
|
102469
|
+
heightCm?: InputMaybe<Scalars['Float']['input']>;
|
|
102470
|
+
/** Optional package size in cm; all three or none. Volumetric weight is applied when larger. */
|
|
102471
|
+
lengthCm?: InputMaybe<Scalars['Float']['input']>;
|
|
102472
|
+
/** When given, the result also carries an own-fleet cost estimate for the same lane. */
|
|
102473
|
+
ownFleet?: InputMaybe<OwnFleetInput>;
|
|
102474
|
+
pickupPostcode: Scalars['String']['input'];
|
|
102475
|
+
/** Dead weight in kg. */
|
|
102476
|
+
weightKg: Scalars['Float']['input'];
|
|
102477
|
+
widthCm?: InputMaybe<Scalars['Float']['input']>;
|
|
102478
|
+
};
|
|
102479
|
+
|
|
101375
102480
|
/** A registered SIEM export destination. `hmacSecret` is never exposed over GraphQL — only returned once, out-of-band of this type, at creation/rotation time via `SiemDestinationSecretResult`. */
|
|
101376
102481
|
export type SiemDestination = {
|
|
101377
102482
|
__typename?: 'SiemDestination';
|
|
@@ -106614,6 +107719,7 @@ export type TimeCampusDataErasureRequest = {
|
|
|
106614
107719
|
__typename?: 'TimeCampusDataErasureRequest';
|
|
106615
107720
|
completedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
106616
107721
|
id: Scalars['ID']['output'];
|
|
107722
|
+
notes?: Maybe<Scalars['String']['output']>;
|
|
106617
107723
|
requestedAt: Scalars['DateTime']['output'];
|
|
106618
107724
|
requestedBy: Scalars['ID']['output'];
|
|
106619
107725
|
status: TimeCampusDataErasureStatus;
|
|
@@ -108634,6 +109740,8 @@ export type UpdateAssetInput = {
|
|
|
108634
109740
|
|
|
108635
109741
|
export type UpdateAuditInput = {
|
|
108636
109742
|
auditor?: InputMaybe<Scalars['String']['input']>;
|
|
109743
|
+
/** The certification this audit was carried out against. Pass null to unlink it — the Active gate must not become permanent once a link is set. */
|
|
109744
|
+
certificationId?: InputMaybe<Scalars['ID']['input']>;
|
|
108637
109745
|
completedDate?: InputMaybe<Scalars['String']['input']>;
|
|
108638
109746
|
context: ContextInput;
|
|
108639
109747
|
criticalFindings?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -110019,6 +111127,8 @@ export type UpdateHarvestRecordInput = {
|
|
|
110019
111127
|
fieldId?: InputMaybe<Scalars['ID']['input']>;
|
|
110020
111128
|
harvestDate?: InputMaybe<Scalars['String']['input']>;
|
|
110021
111129
|
id: Scalars['ID']['input'];
|
|
111130
|
+
/** BOFF-6056 — attach a banked harvest to the plan it came from, after the fact. `createHarvestRecord` has always accepted this, but the update path did not, so a harvest recorded without it was stranded outside plan-vs-actual forever. That is why `PlanExecutionPanel` renders actual: 0 against a real harvest — the panel is correct, the link was simply never writable a second time. */
|
|
111131
|
+
plantingPlanId?: InputMaybe<Scalars['ID']['input']>;
|
|
110022
111132
|
pricePerUnit?: InputMaybe<Scalars['Float']['input']>;
|
|
110023
111133
|
quality?: InputMaybe<Scalars['String']['input']>;
|
|
110024
111134
|
quantity?: InputMaybe<Scalars['Float']['input']>;
|
|
@@ -110255,6 +111365,7 @@ export type UpdateHealthyBowlAnimalDepthInput = {
|
|
|
110255
111365
|
context: ContextInput;
|
|
110256
111366
|
/** Loose link to another animal (dam). Pass null to clear. */
|
|
110257
111367
|
damId?: InputMaybe<Scalars['ID']['input']>;
|
|
111368
|
+
/** EID / RFID electronic tag. Stored exactly as typed — trimmed, with runs of inner whitespace collapsed to one space — because the spacing is how a farmer reads the tag off the device. Unique per workspace across live animals, compared case-insensitively and ignoring every non-alphanumeric character: `982 000123456789`, `982000123456789` and `982-000123456789` are ONE tag. A clash is rejected with `extensions.code = "CONFLICT"` and a message naming the tag number of the animal that already holds it. A soft-deleted animal does not hold its EID, so a culled animal's tag can be reused. At most 100 characters; only letters, digits, spaces, `-` and `_`, and at least one letter or digit. Anything else is rejected with `BAD_USER_INPUT`. Pass `null` or an empty string to clear it; any number of animals may have no EID. */
|
|
110258
111369
|
eidTag?: InputMaybe<Scalars['String']['input']>;
|
|
110259
111370
|
grazingNotes?: InputMaybe<Scalars['String']['input']>;
|
|
110260
111371
|
grazingPaddock?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -110344,6 +111455,15 @@ export type UpdateHealthyBowlCostCenterInput = {
|
|
|
110344
111455
|
yieldUnit?: InputMaybe<Scalars['String']['input']>;
|
|
110345
111456
|
};
|
|
110346
111457
|
|
|
111458
|
+
export type UpdateHealthyBowlCrewInput = {
|
|
111459
|
+
context: ContextInput;
|
|
111460
|
+
id: Scalars['ID']['input'];
|
|
111461
|
+
isActive?: InputMaybe<Scalars['Boolean']['input']>;
|
|
111462
|
+
leadWorkerId?: InputMaybe<Scalars['ID']['input']>;
|
|
111463
|
+
name: Scalars['String']['input'];
|
|
111464
|
+
workerIds?: InputMaybe<Array<Scalars['ID']['input']>>;
|
|
111465
|
+
};
|
|
111466
|
+
|
|
110347
111467
|
export type UpdateHealthyBowlCsaDeliveryInput = {
|
|
110348
111468
|
context: ContextInput;
|
|
110349
111469
|
id: Scalars['ID']['input'];
|
|
@@ -110492,6 +111612,7 @@ export type UpdateHealthyBowlInsurancePolicyInput = {
|
|
|
110492
111612
|
};
|
|
110493
111613
|
|
|
110494
111614
|
export type UpdateHealthyBowlIrrigationAutomationInput = {
|
|
111615
|
+
autoTaskEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
110495
111616
|
context: ContextInput;
|
|
110496
111617
|
id: Scalars['ID']['input'];
|
|
110497
111618
|
notifyInApp?: InputMaybe<Scalars['Boolean']['input']>;
|
|
@@ -110515,6 +111636,23 @@ export type UpdateHealthyBowlIrrigationScheduleInput = {
|
|
|
110515
111636
|
status?: InputMaybe<Scalars['String']['input']>;
|
|
110516
111637
|
};
|
|
110517
111638
|
|
|
111639
|
+
export type UpdateHealthyBowlLabourEntryInput = {
|
|
111640
|
+
context: ContextInput;
|
|
111641
|
+
costCenterId: Scalars['ID']['input'];
|
|
111642
|
+
crewId?: InputMaybe<Scalars['ID']['input']>;
|
|
111643
|
+
cropId?: InputMaybe<Scalars['ID']['input']>;
|
|
111644
|
+
date?: InputMaybe<Scalars['String']['input']>;
|
|
111645
|
+
fieldId?: InputMaybe<Scalars['ID']['input']>;
|
|
111646
|
+
hours?: InputMaybe<Scalars['Float']['input']>;
|
|
111647
|
+
id: Scalars['ID']['input'];
|
|
111648
|
+
note?: InputMaybe<Scalars['String']['input']>;
|
|
111649
|
+
quantity?: InputMaybe<Scalars['Float']['input']>;
|
|
111650
|
+
rateAmount?: InputMaybe<Scalars['Float']['input']>;
|
|
111651
|
+
rateType?: InputMaybe<Scalars['String']['input']>;
|
|
111652
|
+
taskId?: InputMaybe<Scalars['String']['input']>;
|
|
111653
|
+
workerId: Scalars['ID']['input'];
|
|
111654
|
+
};
|
|
111655
|
+
|
|
110518
111656
|
export type UpdateHealthyBowlLedgerAccountInput = {
|
|
110519
111657
|
accountType?: InputMaybe<Scalars['String']['input']>;
|
|
110520
111658
|
context: ContextInput;
|
|
@@ -110706,6 +111844,20 @@ export type UpdateHealthyBowlWholesaleOrderInput = {
|
|
|
110706
111844
|
quantityKg?: InputMaybe<Scalars['Float']['input']>;
|
|
110707
111845
|
};
|
|
110708
111846
|
|
|
111847
|
+
export type UpdateHealthyBowlWorkerInput = {
|
|
111848
|
+
context: ContextInput;
|
|
111849
|
+
dailyWage?: InputMaybe<Scalars['Float']['input']>;
|
|
111850
|
+
employmentType?: InputMaybe<Scalars['String']['input']>;
|
|
111851
|
+
hourlyRate?: InputMaybe<Scalars['Float']['input']>;
|
|
111852
|
+
id: Scalars['ID']['input'];
|
|
111853
|
+
isActive?: InputMaybe<Scalars['Boolean']['input']>;
|
|
111854
|
+
linkedActorId?: InputMaybe<Scalars['String']['input']>;
|
|
111855
|
+
name: Scalars['String']['input'];
|
|
111856
|
+
phone?: InputMaybe<Scalars['String']['input']>;
|
|
111857
|
+
piecePrice?: InputMaybe<Scalars['Float']['input']>;
|
|
111858
|
+
skills?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
111859
|
+
};
|
|
111860
|
+
|
|
110709
111861
|
export type UpdateIcsGroupInput = {
|
|
110710
111862
|
certificationId?: InputMaybe<Scalars['ID']['input']>;
|
|
110711
111863
|
code?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -111052,24 +112204,31 @@ export type UpdatePipelineStageInput = {
|
|
|
111052
112204
|
export type UpdatePlantingPlanInput = {
|
|
111053
112205
|
/** Optional loose link to a Bed (no FK). */
|
|
111054
112206
|
bedId?: InputMaybe<Scalars['ID']['input']>;
|
|
112207
|
+
bedWidthM?: InputMaybe<Scalars['Float']['input']>;
|
|
111055
112208
|
context: ContextInput;
|
|
111056
112209
|
cropId?: InputMaybe<Scalars['ID']['input']>;
|
|
112210
|
+
/** BOFF-6100 — server-derived density on bed fields; caller fallback only for non-bed/no-area fields. */
|
|
112211
|
+
density?: InputMaybe<Scalars['Float']['input']>;
|
|
111057
112212
|
endDate?: InputMaybe<Scalars['String']['input']>;
|
|
111058
112213
|
expectedYield?: InputMaybe<Scalars['Float']['input']>;
|
|
111059
112214
|
fertilizers?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
111060
112215
|
fieldId?: InputMaybe<Scalars['ID']['input']>;
|
|
111061
112216
|
id: Scalars['ID']['input'];
|
|
112217
|
+
pathWidthM?: InputMaybe<Scalars['Float']['input']>;
|
|
111062
112218
|
/** Optional loose link to a PlantCatalog entry (no FK). */
|
|
111063
112219
|
plantCatalogId?: InputMaybe<Scalars['ID']['input']>;
|
|
112220
|
+
/** Optional geometry. Supplying any of these causes the server to derive all plan figures together. */
|
|
112221
|
+
plantSpacingCm?: InputMaybe<Scalars['Float']['input']>;
|
|
111064
112222
|
/** I-5 seed-rate result — total plants required. */
|
|
111065
112223
|
plantsNeeded?: InputMaybe<Scalars['Int']['input']>;
|
|
111066
112224
|
priority?: InputMaybe<Scalars['String']['input']>;
|
|
112225
|
+
rowSpacingCm?: InputMaybe<Scalars['Float']['input']>;
|
|
111067
112226
|
/** Growing season. Must be one of: KHARIF, RABI, ZAID, PERENNIAL (case-insensitive). */
|
|
111068
112227
|
season?: InputMaybe<Scalars['String']['input']>;
|
|
111069
112228
|
/** I-5 seed-rate result — grams of seed required. */
|
|
111070
112229
|
seedGrams?: InputMaybe<Scalars['Float']['input']>;
|
|
111071
112230
|
seedRequired?: InputMaybe<Scalars['Float']['input']>;
|
|
111072
|
-
/** I-5 seed-rate result — seedlings/transplants to raise. */
|
|
112231
|
+
/** I-5 seed-rate result — seedlings/transplants to raise. Server-derived when this update touches planting inputs. */
|
|
111073
112232
|
seedlingsToRaise?: InputMaybe<Scalars['Int']['input']>;
|
|
111074
112233
|
/** Sow/nursery-start date (ISO); distinct from the transplant startDate. */
|
|
111075
112234
|
sowDate?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -111436,6 +112595,15 @@ export type UpdateScheduledJobInput = {
|
|
|
111436
112595
|
timezone?: InputMaybe<Scalars['String']['input']>;
|
|
111437
112596
|
};
|
|
111438
112597
|
|
|
112598
|
+
export type UpdateSchemeApplicationStatusInput = {
|
|
112599
|
+
context: ContextInput;
|
|
112600
|
+
id: Scalars['ID']['input'];
|
|
112601
|
+
/** Officer-visible reason; applicant notes remain unchanged. */
|
|
112602
|
+
remarks?: InputMaybe<Scalars['String']['input']>;
|
|
112603
|
+
/** SUBMITTED | UNDER_REVIEW | APPROVED | REJECTED | DISBURSED. */
|
|
112604
|
+
status: Scalars['String']['input'];
|
|
112605
|
+
};
|
|
112606
|
+
|
|
111439
112607
|
export enum UpdateScope {
|
|
111440
112608
|
AllEvents = 'ALL_EVENTS',
|
|
111441
112609
|
ThisAndFuture = 'THIS_AND_FUTURE',
|
|
@@ -111873,10 +113041,13 @@ export type UpdateVehicleInput = {
|
|
|
111873
113041
|
fuelEfficiencyLPer100Km?: InputMaybe<Scalars['Float']['input']>;
|
|
111874
113042
|
fuelLevel?: InputMaybe<Scalars['Float']['input']>;
|
|
111875
113043
|
fuelType?: InputMaybe<FuelType>;
|
|
113044
|
+
lastServiceDate?: InputMaybe<Scalars['DateTime']['input']>;
|
|
111876
113045
|
licensePlate?: InputMaybe<Scalars['String']['input']>;
|
|
111877
113046
|
make?: InputMaybe<Scalars['String']['input']>;
|
|
111878
113047
|
mileage?: InputMaybe<Scalars['Float']['input']>;
|
|
111879
113048
|
model?: InputMaybe<Scalars['String']['input']>;
|
|
113049
|
+
nextServiceDueDate?: InputMaybe<Scalars['DateTime']['input']>;
|
|
113050
|
+
nextServiceDueMileage?: InputMaybe<Scalars['Float']['input']>;
|
|
111880
113051
|
ownershipType?: InputMaybe<Scalars['String']['input']>;
|
|
111881
113052
|
status?: InputMaybe<VehicleStatus>;
|
|
111882
113053
|
type?: InputMaybe<VehicleType>;
|
|
@@ -112459,6 +113630,8 @@ export type UpsertHealthyBowlSoilCarbonEstimateInput = {
|
|
|
112459
113630
|
export type UpsertHealthyBowlWeatherAlertSettingsInput = {
|
|
112460
113631
|
advisoryLanguage?: InputMaybe<Scalars['String']['input']>;
|
|
112461
113632
|
aiAdvisoryEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
113633
|
+
/** Destination for EMAIL alerts. Rejected with BAD_USER_INPUT if it is not a usable address. */
|
|
113634
|
+
alertEmail?: InputMaybe<Scalars['String']['input']>;
|
|
112462
113635
|
alertLeadTimeHours?: InputMaybe<Scalars['Int']['input']>;
|
|
112463
113636
|
baselineYears?: InputMaybe<Scalars['Int']['input']>;
|
|
112464
113637
|
context: ContextInput;
|
|
@@ -112469,6 +113642,8 @@ export type UpsertHealthyBowlWeatherAlertSettingsInput = {
|
|
|
112469
113642
|
quietHoursEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
112470
113643
|
quietHoursEnd?: InputMaybe<Scalars['String']['input']>;
|
|
112471
113644
|
quietHoursStart?: InputMaybe<Scalars['String']['input']>;
|
|
113645
|
+
/** IANA zone the quiet window is evaluated in. Null means UTC, which is rarely what a farm means. */
|
|
113646
|
+
quietHoursTimezone?: InputMaybe<Scalars['String']['input']>;
|
|
112472
113647
|
smsEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
112473
113648
|
smsNumber?: InputMaybe<Scalars['String']['input']>;
|
|
112474
113649
|
units?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -115390,6 +116565,8 @@ export type WeatherAlertSettings = {
|
|
|
115390
116565
|
__typename?: 'WeatherAlertSettings';
|
|
115391
116566
|
advisoryLanguage: Scalars['String']['output'];
|
|
115392
116567
|
aiAdvisoryEnabled: Scalars['Boolean']['output'];
|
|
116568
|
+
/** Where an EMAIL alert is sent. Without it `emailEnabled` cannot deliver anything (BOFF-6027). */
|
|
116569
|
+
alertEmail?: Maybe<Scalars['String']['output']>;
|
|
115393
116570
|
alertLeadTimeHours: Scalars['Int']['output'];
|
|
115394
116571
|
baselineYears: Scalars['Int']['output'];
|
|
115395
116572
|
deviationThresholdPct: Scalars['Int']['output'];
|
|
@@ -115399,9 +116576,13 @@ export type WeatherAlertSettings = {
|
|
|
115399
116576
|
historyLastSyncedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
115400
116577
|
historyStartYear?: Maybe<Scalars['Int']['output']>;
|
|
115401
116578
|
inAppEnabled: Scalars['Boolean']['output'];
|
|
116579
|
+
/** True once a human has saved these settings. Until then the quiet window is NOT enforced — the toggle defaults on and the row is auto-created, so acting on the default would mute farms that never chose it (BOFF-6027). */
|
|
116580
|
+
quietHoursConfigured: Scalars['Boolean']['output'];
|
|
115402
116581
|
quietHoursEnabled: Scalars['Boolean']['output'];
|
|
115403
116582
|
quietHoursEnd: Scalars['String']['output'];
|
|
115404
116583
|
quietHoursStart: Scalars['String']['output'];
|
|
116584
|
+
/** IANA zone the window is evaluated in. Null means UTC. */
|
|
116585
|
+
quietHoursTimezone?: Maybe<Scalars['String']['output']>;
|
|
115405
116586
|
smsEnabled: Scalars['Boolean']['output'];
|
|
115406
116587
|
smsNumber?: Maybe<Scalars['String']['output']>;
|
|
115407
116588
|
/** metric or imperial. */
|
|
@@ -116880,6 +118061,8 @@ export type Workspace = {
|
|
|
116880
118061
|
id: Scalars['ID']['output'];
|
|
116881
118062
|
/** Apps installed in this workspace */
|
|
116882
118063
|
installedApps: Array<WorkspaceInstalledApp>;
|
|
118064
|
+
/** Platform-controlled disposable-workspace marker (BOFF-6560). true only for workspaces created through createDisposableWorkspace (service-actor-only); every other workspace — including ones with a "test"/"demo"-looking name — is false and cannot be reclassified after creation. wspace services use this as the authoritative precondition before running destructive demo/test-only seed or teardown operations against a workspace. */
|
|
118065
|
+
isDisposable: Scalars['Boolean']['output'];
|
|
116883
118066
|
/** Display name of the workspace */
|
|
116884
118067
|
name: Scalars['String']['output'];
|
|
116885
118068
|
/** Organization ID if part of an organization (opaque reference) */
|