@deepintel-ltd/farmpro-contracts 1.7.14 → 1.7.19
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/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/routes/agent-workflows.routes.d.ts +88 -88
- package/dist/routes/agents.routes.d.ts +3260 -0
- package/dist/routes/agents.routes.d.ts.map +1 -1
- package/dist/routes/agents.routes.js +130 -1
- package/dist/routes/analytics.routes.d.ts +20 -20
- package/dist/routes/documents.routes.d.ts +855 -58
- package/dist/routes/documents.routes.d.ts.map +1 -1
- package/dist/routes/documents.routes.js +43 -1
- package/dist/routes/equipment.routes.d.ts +38 -38
- package/dist/routes/farm-status.routes.d.ts +315 -0
- package/dist/routes/farm-status.routes.d.ts.map +1 -0
- package/dist/routes/farm-status.routes.js +26 -0
- package/dist/routes/fertigation.routes.d.ts +148 -148
- package/dist/routes/field-monitoring.routes.d.ts +52 -52
- package/dist/routes/field-observations.routes.d.ts +56 -56
- package/dist/routes/finance.routes.d.ts +3493 -0
- package/dist/routes/finance.routes.d.ts.map +1 -1
- package/dist/routes/finance.routes.js +158 -1
- package/dist/routes/geofences.routes.d.ts.map +1 -1
- package/dist/routes/index.d.ts +3 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +2 -0
- package/dist/routes/irrigation.routes.d.ts +6 -6
- package/dist/routes/measurements.routes.d.ts +13 -4
- package/dist/routes/measurements.routes.d.ts.map +1 -1
- package/dist/routes/monitoring-visualization.routes.d.ts +36 -29
- package/dist/routes/monitoring-visualization.routes.d.ts.map +1 -1
- package/dist/routes/monitoring-visualization.routes.js +7 -4
- package/dist/routes/pest-disease-risk.routes.d.ts +20 -20
- package/dist/routes/prescription-maps.routes.d.ts +567 -20
- package/dist/routes/prescription-maps.routes.d.ts.map +1 -1
- package/dist/routes/prescription-maps.routes.js +18 -1
- package/dist/routes/soil-tests.routes.d.ts +30 -30
- package/dist/routes/subscriptions.routes.d.ts +14 -14
- package/dist/routes/weather.routes.d.ts +545 -52
- package/dist/routes/weather.routes.d.ts.map +1 -1
- package/dist/routes/weather.routes.js +13 -1
- package/dist/routes/yield-prediction.routes.d.ts +30 -30
- package/dist/schemas/agent-workflows.schemas.d.ts +92 -92
- package/dist/schemas/agents.schemas.d.ts +1120 -0
- package/dist/schemas/agents.schemas.d.ts.map +1 -1
- package/dist/schemas/agents.schemas.js +181 -0
- package/dist/schemas/analytics.schemas.d.ts +56 -56
- package/dist/schemas/documents.schemas.d.ts +248 -48
- package/dist/schemas/documents.schemas.d.ts.map +1 -1
- package/dist/schemas/documents.schemas.js +38 -0
- package/dist/schemas/equipment.schemas.d.ts +30 -30
- package/dist/schemas/farm-status.schemas.d.ts +451 -0
- package/dist/schemas/farm-status.schemas.d.ts.map +1 -0
- package/dist/schemas/farm-status.schemas.js +44 -0
- package/dist/schemas/fertigation.schemas.d.ts +50 -50
- package/dist/schemas/field-monitoring.schemas.d.ts +42 -42
- package/dist/schemas/field-observations.schemas.d.ts +44 -44
- package/dist/schemas/finance.schemas.d.ts +1057 -0
- package/dist/schemas/finance.schemas.d.ts.map +1 -1
- package/dist/schemas/finance.schemas.js +170 -0
- package/dist/schemas/irrigation.schemas.d.ts +8 -8
- package/dist/schemas/measurements.schemas.d.ts +21 -8
- package/dist/schemas/measurements.schemas.d.ts.map +1 -1
- package/dist/schemas/measurements.schemas.js +13 -6
- package/dist/schemas/monitoring-visualization.schemas.d.ts +43 -36
- package/dist/schemas/monitoring-visualization.schemas.d.ts.map +1 -1
- package/dist/schemas/monitoring-visualization.schemas.js +24 -16
- package/dist/schemas/pest-disease-risk.schemas.d.ts +18 -18
- package/dist/schemas/prescription-maps.schemas.d.ts +41 -18
- package/dist/schemas/prescription-maps.schemas.d.ts.map +1 -1
- package/dist/schemas/prescription-maps.schemas.js +8 -0
- package/dist/schemas/recommendations.schemas.d.ts +2 -2
- package/dist/schemas/soil-tests.schemas.d.ts +28 -28
- package/dist/schemas/subscriptions.schemas.d.ts +22 -22
- package/dist/schemas/weather.schemas.d.ts +789 -112
- package/dist/schemas/weather.schemas.d.ts.map +1 -1
- package/dist/schemas/weather.schemas.js +37 -0
- package/dist/schemas/yield-prediction.schemas.d.ts +12 -12
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.routes.d.ts","sourceRoot":"","sources":["../../src/routes/agents.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"agents.routes.d.ts","sourceRoot":"","sources":["../../src/routes/agents.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqOvB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { initContract } from '@ts-rest/core';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { chatRequestSchema, agentChatResponseSchema, conversationHistoryResponseSchema, conversationListResponseSchema, surveyGeoJsonResponseSchema, } from '../schemas/agents.schemas';
|
|
3
|
+
import { chatRequestSchema, agentChatResponseSchema, conversationHistoryResponseSchema, conversationListResponseSchema, surveyGeoJsonResponseSchema, resourceConflictResponseSchema, gddTrackerResponseSchema, reorderInsightsResponseSchema, weeklyWorkOrdersResponseSchema, pestScoutingCalendarResponseSchema, harvestReadinessResponseSchema, farmBrainChatRequestSchema, farmBrainChatResponseSchema, dailyBriefingResponseSchema, farmBrainLocalizedRequestSchema, farmBrainLocalizedResponseSchema, ussdQueryRequestSchema, ussdQueryResponseSchema, } from '../schemas/agents.schemas';
|
|
4
4
|
import { jsonApiErrorResponseSchema } from '../schemas/common.schemas';
|
|
5
5
|
const c = initContract();
|
|
6
6
|
export const agentsRouter = c.router({
|
|
@@ -105,4 +105,133 @@ export const agentsRouter = c.router({
|
|
|
105
105
|
summary: 'Generate GeoJSON from survey document',
|
|
106
106
|
description: 'Upload a survey document (PDF or image) and generate standardized GeoJSON. The agent intelligently extracts survey data, handles errors, and makes approximations when needed to create accurate geospatial boundaries.',
|
|
107
107
|
},
|
|
108
|
+
detectResourceConflicts: {
|
|
109
|
+
method: 'GET',
|
|
110
|
+
path: '/farms/:farmId/operations/resource-conflicts',
|
|
111
|
+
pathParams: z.object({ farmId: z.string().uuid() }),
|
|
112
|
+
query: z.object({
|
|
113
|
+
startDate: z.string().datetime().optional(),
|
|
114
|
+
endDate: z.string().datetime().optional(),
|
|
115
|
+
}),
|
|
116
|
+
responses: {
|
|
117
|
+
200: resourceConflictResponseSchema,
|
|
118
|
+
401: jsonApiErrorResponseSchema,
|
|
119
|
+
404: jsonApiErrorResponseSchema,
|
|
120
|
+
},
|
|
121
|
+
summary: 'Detect task resource conflicts',
|
|
122
|
+
},
|
|
123
|
+
getGddTracker: {
|
|
124
|
+
method: 'GET',
|
|
125
|
+
path: '/fields/:fieldId/gdd-tracker',
|
|
126
|
+
pathParams: z.object({ fieldId: z.string().uuid() }),
|
|
127
|
+
responses: {
|
|
128
|
+
200: gddTrackerResponseSchema,
|
|
129
|
+
401: jsonApiErrorResponseSchema,
|
|
130
|
+
404: jsonApiErrorResponseSchema,
|
|
131
|
+
},
|
|
132
|
+
summary: 'Get field GDD tracker',
|
|
133
|
+
},
|
|
134
|
+
getInventoryReorderInsights: {
|
|
135
|
+
method: 'GET',
|
|
136
|
+
path: '/farms/:farmId/inventory/reorder-insights',
|
|
137
|
+
pathParams: z.object({ farmId: z.string().uuid() }),
|
|
138
|
+
responses: {
|
|
139
|
+
200: reorderInsightsResponseSchema,
|
|
140
|
+
401: jsonApiErrorResponseSchema,
|
|
141
|
+
404: jsonApiErrorResponseSchema,
|
|
142
|
+
},
|
|
143
|
+
summary: 'Get smart inventory reorder insights',
|
|
144
|
+
},
|
|
145
|
+
generateWeeklyWorkOrders: {
|
|
146
|
+
method: 'POST',
|
|
147
|
+
path: '/farms/:farmId/operations/weekly-work-orders',
|
|
148
|
+
pathParams: z.object({ farmId: z.string().uuid() }),
|
|
149
|
+
body: z
|
|
150
|
+
.object({
|
|
151
|
+
startDate: z.string().datetime().optional(),
|
|
152
|
+
horizonDays: z.coerce.number().int().min(1).max(14).optional(),
|
|
153
|
+
})
|
|
154
|
+
.optional(),
|
|
155
|
+
responses: {
|
|
156
|
+
200: weeklyWorkOrdersResponseSchema,
|
|
157
|
+
401: jsonApiErrorResponseSchema,
|
|
158
|
+
404: jsonApiErrorResponseSchema,
|
|
159
|
+
500: jsonApiErrorResponseSchema,
|
|
160
|
+
},
|
|
161
|
+
summary: 'Generate weekly work orders with conflict guard',
|
|
162
|
+
},
|
|
163
|
+
getPestScoutingCalendar: {
|
|
164
|
+
method: 'GET',
|
|
165
|
+
path: '/farms/:farmId/operations/pest-scouting-calendar',
|
|
166
|
+
pathParams: z.object({ farmId: z.string().uuid() }),
|
|
167
|
+
query: z.object({
|
|
168
|
+
startDate: z.string().datetime().optional(),
|
|
169
|
+
horizonDays: z.coerce.number().int().min(1).max(30).optional(),
|
|
170
|
+
}),
|
|
171
|
+
responses: {
|
|
172
|
+
200: pestScoutingCalendarResponseSchema,
|
|
173
|
+
401: jsonApiErrorResponseSchema,
|
|
174
|
+
404: jsonApiErrorResponseSchema,
|
|
175
|
+
},
|
|
176
|
+
summary: 'Get pest scouting calendar',
|
|
177
|
+
},
|
|
178
|
+
getHarvestReadiness: {
|
|
179
|
+
method: 'GET',
|
|
180
|
+
path: '/fields/:fieldId/harvest-readiness',
|
|
181
|
+
pathParams: z.object({ fieldId: z.string().uuid() }),
|
|
182
|
+
responses: {
|
|
183
|
+
200: harvestReadinessResponseSchema,
|
|
184
|
+
401: jsonApiErrorResponseSchema,
|
|
185
|
+
404: jsonApiErrorResponseSchema,
|
|
186
|
+
},
|
|
187
|
+
summary: 'Get field harvest readiness score',
|
|
188
|
+
},
|
|
189
|
+
farmBrainChat: {
|
|
190
|
+
method: 'POST',
|
|
191
|
+
path: '/farms/:farmId/farm-brain/chat',
|
|
192
|
+
pathParams: z.object({ farmId: z.string().uuid() }),
|
|
193
|
+
body: farmBrainChatRequestSchema,
|
|
194
|
+
responses: {
|
|
195
|
+
200: farmBrainChatResponseSchema,
|
|
196
|
+
401: jsonApiErrorResponseSchema,
|
|
197
|
+
404: jsonApiErrorResponseSchema,
|
|
198
|
+
500: jsonApiErrorResponseSchema,
|
|
199
|
+
},
|
|
200
|
+
summary: 'Unified Farm Brain chat entrypoint',
|
|
201
|
+
},
|
|
202
|
+
getDailyBriefing: {
|
|
203
|
+
method: 'GET',
|
|
204
|
+
path: '/farms/:farmId/farm-brain/daily-briefing',
|
|
205
|
+
pathParams: z.object({ farmId: z.string().uuid() }),
|
|
206
|
+
responses: {
|
|
207
|
+
200: dailyBriefingResponseSchema,
|
|
208
|
+
401: jsonApiErrorResponseSchema,
|
|
209
|
+
404: jsonApiErrorResponseSchema,
|
|
210
|
+
},
|
|
211
|
+
summary: 'Generate daily farm briefing',
|
|
212
|
+
},
|
|
213
|
+
farmBrainLocalizedChat: {
|
|
214
|
+
method: 'POST',
|
|
215
|
+
path: '/farms/:farmId/farm-brain/chat-localized',
|
|
216
|
+
pathParams: z.object({ farmId: z.string().uuid() }),
|
|
217
|
+
body: farmBrainLocalizedRequestSchema,
|
|
218
|
+
responses: {
|
|
219
|
+
200: farmBrainLocalizedResponseSchema,
|
|
220
|
+
401: jsonApiErrorResponseSchema,
|
|
221
|
+
404: jsonApiErrorResponseSchema,
|
|
222
|
+
},
|
|
223
|
+
summary: 'Farm Brain chat with localization',
|
|
224
|
+
},
|
|
225
|
+
farmBrainUssdQuery: {
|
|
226
|
+
method: 'POST',
|
|
227
|
+
path: '/farms/:farmId/farm-brain/ussd',
|
|
228
|
+
pathParams: z.object({ farmId: z.string().uuid() }),
|
|
229
|
+
body: ussdQueryRequestSchema,
|
|
230
|
+
responses: {
|
|
231
|
+
200: ussdQueryResponseSchema,
|
|
232
|
+
401: jsonApiErrorResponseSchema,
|
|
233
|
+
404: jsonApiErrorResponseSchema,
|
|
234
|
+
},
|
|
235
|
+
summary: 'USSD fallback query endpoint',
|
|
236
|
+
},
|
|
108
237
|
});
|
|
@@ -121,15 +121,15 @@ export declare const analyticsRouter: {
|
|
|
121
121
|
fieldId: string;
|
|
122
122
|
fieldName: string;
|
|
123
123
|
revenue: number;
|
|
124
|
-
costs: number;
|
|
125
124
|
profit: number;
|
|
125
|
+
costs: number;
|
|
126
126
|
margin: number;
|
|
127
127
|
}, {
|
|
128
128
|
fieldId: string;
|
|
129
129
|
fieldName: string;
|
|
130
130
|
revenue: number;
|
|
131
|
-
costs: number;
|
|
132
131
|
profit: number;
|
|
132
|
+
costs: number;
|
|
133
133
|
margin: number;
|
|
134
134
|
}>, "many">>;
|
|
135
135
|
cropBreakdown: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -141,14 +141,14 @@ export declare const analyticsRouter: {
|
|
|
141
141
|
}, "strip", z.ZodTypeAny, {
|
|
142
142
|
crop: string;
|
|
143
143
|
revenue: number;
|
|
144
|
-
costs: number;
|
|
145
144
|
profit: number;
|
|
145
|
+
costs: number;
|
|
146
146
|
margin: number;
|
|
147
147
|
}, {
|
|
148
148
|
crop: string;
|
|
149
149
|
revenue: number;
|
|
150
|
-
costs: number;
|
|
151
150
|
profit: number;
|
|
151
|
+
costs: number;
|
|
152
152
|
margin: number;
|
|
153
153
|
}>, "many">>;
|
|
154
154
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -160,15 +160,15 @@ export declare const analyticsRouter: {
|
|
|
160
160
|
fieldId: string;
|
|
161
161
|
fieldName: string;
|
|
162
162
|
revenue: number;
|
|
163
|
-
costs: number;
|
|
164
163
|
profit: number;
|
|
164
|
+
costs: number;
|
|
165
165
|
margin: number;
|
|
166
166
|
}[] | undefined;
|
|
167
167
|
cropBreakdown?: {
|
|
168
168
|
crop: string;
|
|
169
169
|
revenue: number;
|
|
170
|
-
costs: number;
|
|
171
170
|
profit: number;
|
|
171
|
+
costs: number;
|
|
172
172
|
margin: number;
|
|
173
173
|
}[] | undefined;
|
|
174
174
|
}, {
|
|
@@ -180,15 +180,15 @@ export declare const analyticsRouter: {
|
|
|
180
180
|
fieldId: string;
|
|
181
181
|
fieldName: string;
|
|
182
182
|
revenue: number;
|
|
183
|
-
costs: number;
|
|
184
183
|
profit: number;
|
|
184
|
+
costs: number;
|
|
185
185
|
margin: number;
|
|
186
186
|
}[] | undefined;
|
|
187
187
|
cropBreakdown?: {
|
|
188
188
|
crop: string;
|
|
189
189
|
revenue: number;
|
|
190
|
-
costs: number;
|
|
191
190
|
profit: number;
|
|
191
|
+
costs: number;
|
|
192
192
|
margin: number;
|
|
193
193
|
}[] | undefined;
|
|
194
194
|
}>>;
|
|
@@ -229,15 +229,15 @@ export declare const analyticsRouter: {
|
|
|
229
229
|
fieldId: string;
|
|
230
230
|
fieldName: string;
|
|
231
231
|
revenue: number;
|
|
232
|
-
costs: number;
|
|
233
232
|
profit: number;
|
|
233
|
+
costs: number;
|
|
234
234
|
margin: number;
|
|
235
235
|
}[] | undefined;
|
|
236
236
|
cropBreakdown?: {
|
|
237
237
|
crop: string;
|
|
238
238
|
revenue: number;
|
|
239
|
-
costs: number;
|
|
240
239
|
profit: number;
|
|
240
|
+
costs: number;
|
|
241
241
|
margin: number;
|
|
242
242
|
}[] | undefined;
|
|
243
243
|
} | undefined;
|
|
@@ -278,15 +278,15 @@ export declare const analyticsRouter: {
|
|
|
278
278
|
fieldId: string;
|
|
279
279
|
fieldName: string;
|
|
280
280
|
revenue: number;
|
|
281
|
-
costs: number;
|
|
282
281
|
profit: number;
|
|
282
|
+
costs: number;
|
|
283
283
|
margin: number;
|
|
284
284
|
}[] | undefined;
|
|
285
285
|
cropBreakdown?: {
|
|
286
286
|
crop: string;
|
|
287
287
|
revenue: number;
|
|
288
|
-
costs: number;
|
|
289
288
|
profit: number;
|
|
289
|
+
costs: number;
|
|
290
290
|
margin: number;
|
|
291
291
|
}[] | undefined;
|
|
292
292
|
} | undefined;
|
|
@@ -334,15 +334,15 @@ export declare const analyticsRouter: {
|
|
|
334
334
|
fieldId: string;
|
|
335
335
|
fieldName: string;
|
|
336
336
|
revenue: number;
|
|
337
|
-
costs: number;
|
|
338
337
|
profit: number;
|
|
338
|
+
costs: number;
|
|
339
339
|
margin: number;
|
|
340
340
|
}[] | undefined;
|
|
341
341
|
cropBreakdown?: {
|
|
342
342
|
crop: string;
|
|
343
343
|
revenue: number;
|
|
344
|
-
costs: number;
|
|
345
344
|
profit: number;
|
|
345
|
+
costs: number;
|
|
346
346
|
margin: number;
|
|
347
347
|
}[] | undefined;
|
|
348
348
|
} | undefined;
|
|
@@ -390,15 +390,15 @@ export declare const analyticsRouter: {
|
|
|
390
390
|
fieldId: string;
|
|
391
391
|
fieldName: string;
|
|
392
392
|
revenue: number;
|
|
393
|
-
costs: number;
|
|
394
393
|
profit: number;
|
|
394
|
+
costs: number;
|
|
395
395
|
margin: number;
|
|
396
396
|
}[] | undefined;
|
|
397
397
|
cropBreakdown?: {
|
|
398
398
|
crop: string;
|
|
399
399
|
revenue: number;
|
|
400
|
-
costs: number;
|
|
401
400
|
profit: number;
|
|
401
|
+
costs: number;
|
|
402
402
|
margin: number;
|
|
403
403
|
}[] | undefined;
|
|
404
404
|
} | undefined;
|
|
@@ -472,15 +472,15 @@ export declare const analyticsRouter: {
|
|
|
472
472
|
fieldId: string;
|
|
473
473
|
fieldName: string;
|
|
474
474
|
revenue: number;
|
|
475
|
-
costs: number;
|
|
476
475
|
profit: number;
|
|
476
|
+
costs: number;
|
|
477
477
|
margin: number;
|
|
478
478
|
}[] | undefined;
|
|
479
479
|
cropBreakdown?: {
|
|
480
480
|
crop: string;
|
|
481
481
|
revenue: number;
|
|
482
|
-
costs: number;
|
|
483
482
|
profit: number;
|
|
483
|
+
costs: number;
|
|
484
484
|
margin: number;
|
|
485
485
|
}[] | undefined;
|
|
486
486
|
} | undefined;
|
|
@@ -540,15 +540,15 @@ export declare const analyticsRouter: {
|
|
|
540
540
|
fieldId: string;
|
|
541
541
|
fieldName: string;
|
|
542
542
|
revenue: number;
|
|
543
|
-
costs: number;
|
|
544
543
|
profit: number;
|
|
544
|
+
costs: number;
|
|
545
545
|
margin: number;
|
|
546
546
|
}[] | undefined;
|
|
547
547
|
cropBreakdown?: {
|
|
548
548
|
crop: string;
|
|
549
549
|
revenue: number;
|
|
550
|
-
costs: number;
|
|
551
550
|
profit: number;
|
|
551
|
+
costs: number;
|
|
552
552
|
margin: number;
|
|
553
553
|
}[] | undefined;
|
|
554
554
|
} | undefined;
|