@deepintel-ltd/farmpro-contracts 1.3.1 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/index.d.ts +5 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +7 -1
  4. package/dist/routes/admin.routes.d.ts +747 -0
  5. package/dist/routes/admin.routes.d.ts.map +1 -0
  6. package/dist/routes/admin.routes.js +26 -0
  7. package/dist/routes/agent-workflows.routes.d.ts +2900 -0
  8. package/dist/routes/agent-workflows.routes.d.ts.map +1 -0
  9. package/dist/routes/agent-workflows.routes.js +160 -0
  10. package/dist/routes/field-monitoring.routes.d.ts +568 -23
  11. package/dist/routes/field-monitoring.routes.d.ts.map +1 -1
  12. package/dist/routes/field-monitoring.routes.js +64 -0
  13. package/dist/routes/field-observations.routes.d.ts +130 -58
  14. package/dist/routes/field-observations.routes.d.ts.map +1 -1
  15. package/dist/routes/index.d.ts +6 -0
  16. package/dist/routes/index.d.ts.map +1 -1
  17. package/dist/routes/index.js +4 -0
  18. package/dist/routes/tasks.routes.d.ts +408 -0
  19. package/dist/routes/tasks.routes.d.ts.map +1 -1
  20. package/dist/routes/weather.routes.d.ts +264 -17
  21. package/dist/routes/weather.routes.d.ts.map +1 -1
  22. package/dist/schemas/admin.schemas.d.ts +1063 -0
  23. package/dist/schemas/admin.schemas.d.ts.map +1 -0
  24. package/dist/schemas/admin.schemas.js +63 -0
  25. package/dist/schemas/agent-workflows.schemas.d.ts +2399 -0
  26. package/dist/schemas/agent-workflows.schemas.d.ts.map +1 -0
  27. package/dist/schemas/agent-workflows.schemas.js +70 -0
  28. package/dist/schemas/field-monitoring.schemas.d.ts +215 -9
  29. package/dist/schemas/field-monitoring.schemas.d.ts.map +1 -1
  30. package/dist/schemas/field-monitoring.schemas.js +26 -2
  31. package/dist/schemas/field-observations.schemas.d.ts +100 -40
  32. package/dist/schemas/field-observations.schemas.d.ts.map +1 -1
  33. package/dist/schemas/field-observations.schemas.js +2 -24
  34. package/dist/schemas/recommendations.schemas.d.ts +112 -0
  35. package/dist/schemas/recommendations.schemas.d.ts.map +1 -0
  36. package/dist/schemas/recommendations.schemas.js +32 -0
  37. package/dist/schemas/tasks.schemas.d.ts +344 -0
  38. package/dist/schemas/tasks.schemas.d.ts.map +1 -1
  39. package/dist/schemas/tasks.schemas.js +9 -0
  40. package/dist/schemas/weather.schemas.d.ts +780 -44
  41. package/dist/schemas/weather.schemas.d.ts.map +1 -1
  42. package/dist/schemas/weather.schemas.js +2 -1
  43. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-workflows.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/agent-workflows.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB;;;;;;GAMG;AAGH,eAAO,MAAM,yBAAyB,mDAIpC,CAAC;AAGH,eAAO,MAAM,qBAAqB,0EAKhC,CAAC;AAGH,eAAO,MAAM,2BAA2B,uDAKtC,CAAC;AAGH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK1C,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAC;AAGH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWhB,CAAC;AAI3B,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGvC,CAAC;AAGF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEvC,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE3C,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.agentWorkflowListResponseSchema = exports.agentWorkflowResponseSchema = exports.agentWorkflowResourceSchema = exports.agentWorkflowAttributesSchema = exports.agentResultsSchema = exports.agentRecommendationResultSchema = exports.recommendationOutcomeSchema = exports.workflowOutcomeSchema = exports.agentWorkflowStatusSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const recommendations_schemas_1 = require("./recommendations.schemas");
6
+ const common_schemas_1 = require("./common.schemas");
7
+ /**
8
+ * Agent Workflow Schemas
9
+ *
10
+ * Defines the data contracts for logging and tracking the autonomous,
11
+ * event-driven workflows performed by the system's agents, such as the
12
+ * process of turning a recommendation into a task.
13
+ */
14
+ // The overall status of an agent workflow
15
+ exports.agentWorkflowStatusSchema = zod_1.z.enum([
16
+ 'in_progress',
17
+ 'completed',
18
+ 'failed',
19
+ ]);
20
+ // The final outcome of a recommendation-to-task workflow
21
+ exports.workflowOutcomeSchema = zod_1.z.enum([
22
+ 'task_created',
23
+ 'task_updated',
24
+ 'no_action_needed',
25
+ 'error',
26
+ ]);
27
+ // The outcome for a single recommendation within a workflow
28
+ exports.recommendationOutcomeSchema = zod_1.z.enum([
29
+ 'created',
30
+ 'updated',
31
+ 'skipped',
32
+ 'error',
33
+ ]);
34
+ // Result for a single recommendation processed by the agent
35
+ exports.agentRecommendationResultSchema = zod_1.z.object({
36
+ recommendation: recommendations_schemas_1.recommendationSchema,
37
+ outcome: exports.recommendationOutcomeSchema,
38
+ taskId: zod_1.z.string().uuid().optional(),
39
+ reason: zod_1.z.string(),
40
+ });
41
+ // The `agentResults` object that will be stored as JSON in the database
42
+ exports.agentResultsSchema = zod_1.z.object({
43
+ summary: zod_1.z.object({
44
+ sourceType: zod_1.z.string(),
45
+ tasksCreated: zod_1.z.number().int(),
46
+ tasksUpdated: zod_1.z.number().int(),
47
+ skipped: zod_1.z.number().int(),
48
+ }),
49
+ results: zod_1.z.array(exports.agentRecommendationResultSchema),
50
+ // Optionally include other agent reviews for full traceability
51
+ taskReview: zod_1.z.any().optional(),
52
+ });
53
+ // The main attributes for an AgentWorkflow record
54
+ exports.agentWorkflowAttributesSchema = zod_1.z.object({
55
+ workflowType: zod_1.z.literal('recommendation_to_task'),
56
+ triggerEvent: zod_1.z.string(), // e.g., 'observation.analysis.completed'
57
+ triggerId: zod_1.z.string(), // ID of the observation, alert, etc.
58
+ fieldId: zod_1.z.string().uuid(),
59
+ farmId: zod_1.z.string().uuid(),
60
+ status: exports.agentWorkflowStatusSchema,
61
+ outcome: exports.workflowOutcomeSchema.nullable(),
62
+ agentResults: exports.agentResultsSchema.nullable(),
63
+ errorMessage: zod_1.z.string().nullable(),
64
+ completedAt: zod_1.z.date().nullable(),
65
+ }).merge(common_schemas_1.timestampsSchema);
66
+ // JSON:API resource schemas
67
+ exports.agentWorkflowResourceSchema = (0, common_schemas_1.createJsonApiResourceSchema)('agent-workflows', exports.agentWorkflowAttributesSchema);
68
+ // Response schemas
69
+ exports.agentWorkflowResponseSchema = (0, common_schemas_1.jsonApiSingleResponseSchema)(exports.agentWorkflowResourceSchema);
70
+ exports.agentWorkflowListResponseSchema = (0, common_schemas_1.jsonApiCollectionResponseSchema)(exports.agentWorkflowResourceSchema);
@@ -24,7 +24,7 @@ export declare const fieldMonitoringSummarySchema: z.ZodObject<{
24
24
  currentNDWI: number | null;
25
25
  currentEVI: number | null;
26
26
  currentCropHealth: "poor" | "fair" | "good" | "excellent" | null;
27
- currentWaterStress: "high" | "medium" | "low" | "none" | null;
27
+ currentWaterStress: "low" | "medium" | "high" | "none" | null;
28
28
  overallStatus: "ok" | "critical" | "warning";
29
29
  activeAlertCount: number;
30
30
  lastAlertDate: string | null;
@@ -40,7 +40,7 @@ export declare const fieldMonitoringSummarySchema: z.ZodObject<{
40
40
  currentNDWI: number | null;
41
41
  currentEVI: number | null;
42
42
  currentCropHealth: "poor" | "fair" | "good" | "excellent" | null;
43
- currentWaterStress: "high" | "medium" | "low" | "none" | null;
43
+ currentWaterStress: "low" | "medium" | "high" | "none" | null;
44
44
  overallStatus: "ok" | "critical" | "warning";
45
45
  activeAlertCount: number;
46
46
  lastAlertDate: string | null;
@@ -88,7 +88,86 @@ export declare const fieldAlertSchema: z.ZodObject<{
88
88
  severity: z.ZodEnum<["low", "medium", "high", "critical"]>;
89
89
  title: z.ZodString;
90
90
  message: z.ZodString;
91
- recommendation: z.ZodNullable<z.ZodString>;
91
+ recommendations: z.ZodNullable<z.ZodArray<z.ZodObject<{
92
+ priority: z.ZodNumber;
93
+ action: z.ZodString;
94
+ details: z.ZodString;
95
+ timing: z.ZodString;
96
+ severity: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "critical"]>>;
97
+ confidence: z.ZodOptional<z.ZodNumber>;
98
+ materials: z.ZodOptional<z.ZodArray<z.ZodObject<{
99
+ inventoryItemId: z.ZodOptional<z.ZodString>;
100
+ name: z.ZodString;
101
+ quantity: z.ZodNumber;
102
+ unit: z.ZodString;
103
+ costPerUnit: z.ZodOptional<z.ZodNumber>;
104
+ totalCost: z.ZodOptional<z.ZodNumber>;
105
+ availability: z.ZodOptional<z.ZodString>;
106
+ }, "strip", z.ZodTypeAny, {
107
+ name: string;
108
+ unit: string;
109
+ quantity: number;
110
+ inventoryItemId?: string | undefined;
111
+ totalCost?: number | undefined;
112
+ costPerUnit?: number | undefined;
113
+ availability?: string | undefined;
114
+ }, {
115
+ name: string;
116
+ unit: string;
117
+ quantity: number;
118
+ inventoryItemId?: string | undefined;
119
+ totalCost?: number | undefined;
120
+ costPerUnit?: number | undefined;
121
+ availability?: string | undefined;
122
+ }>, "many">>;
123
+ applicationMethod: z.ZodOptional<z.ZodString>;
124
+ expectedOutcome: z.ZodOptional<z.ZodString>;
125
+ preventiveMeasures: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
126
+ estimatedTime: z.ZodOptional<z.ZodString>;
127
+ riskLevel: z.ZodOptional<z.ZodString>;
128
+ }, "strip", z.ZodTypeAny, {
129
+ priority: number;
130
+ action: string;
131
+ details: string;
132
+ timing: string;
133
+ severity?: "critical" | "low" | "medium" | "high" | undefined;
134
+ confidence?: number | undefined;
135
+ materials?: {
136
+ name: string;
137
+ unit: string;
138
+ quantity: number;
139
+ inventoryItemId?: string | undefined;
140
+ totalCost?: number | undefined;
141
+ costPerUnit?: number | undefined;
142
+ availability?: string | undefined;
143
+ }[] | undefined;
144
+ applicationMethod?: string | undefined;
145
+ expectedOutcome?: string | undefined;
146
+ preventiveMeasures?: string[] | undefined;
147
+ estimatedTime?: string | undefined;
148
+ riskLevel?: string | undefined;
149
+ }, {
150
+ priority: number;
151
+ action: string;
152
+ details: string;
153
+ timing: string;
154
+ severity?: "critical" | "low" | "medium" | "high" | undefined;
155
+ confidence?: number | undefined;
156
+ materials?: {
157
+ name: string;
158
+ unit: string;
159
+ quantity: number;
160
+ inventoryItemId?: string | undefined;
161
+ totalCost?: number | undefined;
162
+ costPerUnit?: number | undefined;
163
+ availability?: string | undefined;
164
+ }[] | undefined;
165
+ applicationMethod?: string | undefined;
166
+ expectedOutcome?: string | undefined;
167
+ preventiveMeasures?: string[] | undefined;
168
+ estimatedTime?: string | undefined;
169
+ riskLevel?: string | undefined;
170
+ }>, "many">>;
92
171
  status: z.ZodEnum<["active", "acknowledged", "resolved"]>;
93
172
  acknowledgedAt: z.ZodNullable<z.ZodString>;
94
173
  acknowledgedBy: z.ZodNullable<z.ZodString>;
@@ -104,12 +183,33 @@ export declare const fieldAlertSchema: z.ZodObject<{
104
183
  title: string;
105
184
  createdAt: string;
106
185
  fieldId: string;
107
- severity: "critical" | "high" | "medium" | "low";
108
- recommendation: string | null;
186
+ recommendations: {
187
+ priority: number;
188
+ action: string;
189
+ details: string;
190
+ timing: string;
191
+ severity?: "critical" | "low" | "medium" | "high" | undefined;
192
+ confidence?: number | undefined;
193
+ materials?: {
194
+ name: string;
195
+ unit: string;
196
+ quantity: number;
197
+ inventoryItemId?: string | undefined;
198
+ totalCost?: number | undefined;
199
+ costPerUnit?: number | undefined;
200
+ availability?: string | undefined;
201
+ }[] | undefined;
202
+ applicationMethod?: string | undefined;
203
+ expectedOutcome?: string | undefined;
204
+ preventiveMeasures?: string[] | undefined;
205
+ estimatedTime?: string | undefined;
206
+ riskLevel?: string | undefined;
207
+ }[] | null;
208
+ severity: "critical" | "low" | "medium" | "high";
209
+ confidence: number | null;
109
210
  acknowledgedAt: string | null;
110
211
  acknowledgedBy: string | null;
111
212
  resolvedAt: string | null;
112
- confidence: number | null;
113
213
  generatedBy: string;
114
214
  fieldName?: string | undefined;
115
215
  }, {
@@ -120,12 +220,33 @@ export declare const fieldAlertSchema: z.ZodObject<{
120
220
  title: string;
121
221
  createdAt: string;
122
222
  fieldId: string;
123
- severity: "critical" | "high" | "medium" | "low";
124
- recommendation: string | null;
223
+ recommendations: {
224
+ priority: number;
225
+ action: string;
226
+ details: string;
227
+ timing: string;
228
+ severity?: "critical" | "low" | "medium" | "high" | undefined;
229
+ confidence?: number | undefined;
230
+ materials?: {
231
+ name: string;
232
+ unit: string;
233
+ quantity: number;
234
+ inventoryItemId?: string | undefined;
235
+ totalCost?: number | undefined;
236
+ costPerUnit?: number | undefined;
237
+ availability?: string | undefined;
238
+ }[] | undefined;
239
+ applicationMethod?: string | undefined;
240
+ expectedOutcome?: string | undefined;
241
+ preventiveMeasures?: string[] | undefined;
242
+ estimatedTime?: string | undefined;
243
+ riskLevel?: string | undefined;
244
+ }[] | null;
245
+ severity: "critical" | "low" | "medium" | "high";
246
+ confidence: number | null;
125
247
  acknowledgedAt: string | null;
126
248
  acknowledgedBy: string | null;
127
249
  resolvedAt: string | null;
128
- confidence: number | null;
129
250
  generatedBy: string;
130
251
  fieldName?: string | undefined;
131
252
  }>;
@@ -213,4 +334,89 @@ export declare const fieldMonitoringErrorResponseSchema: z.ZodObject<{
213
334
  message: string;
214
335
  code?: string | undefined;
215
336
  }>;
337
+ export declare const soilReadingSchema: z.ZodObject<{
338
+ readingDate: z.ZodString;
339
+ soilMoisture: z.ZodNullable<z.ZodNumber>;
340
+ surfaceTemp: z.ZodNullable<z.ZodNumber>;
341
+ temp10cm: z.ZodNullable<z.ZodNumber>;
342
+ }, "strip", z.ZodTypeAny, {
343
+ readingDate: string;
344
+ soilMoisture: number | null;
345
+ surfaceTemp: number | null;
346
+ temp10cm: number | null;
347
+ }, {
348
+ readingDate: string;
349
+ soilMoisture: number | null;
350
+ surfaceTemp: number | null;
351
+ temp10cm: number | null;
352
+ }>;
353
+ export declare const soilTrendSchema: z.ZodObject<{
354
+ fieldId: z.ZodString;
355
+ fieldName: z.ZodString;
356
+ readings: z.ZodArray<z.ZodObject<{
357
+ readingDate: z.ZodString;
358
+ soilMoisture: z.ZodNullable<z.ZodNumber>;
359
+ surfaceTemp: z.ZodNullable<z.ZodNumber>;
360
+ temp10cm: z.ZodNullable<z.ZodNumber>;
361
+ }, "strip", z.ZodTypeAny, {
362
+ readingDate: string;
363
+ soilMoisture: number | null;
364
+ surfaceTemp: number | null;
365
+ temp10cm: number | null;
366
+ }, {
367
+ readingDate: string;
368
+ soilMoisture: number | null;
369
+ surfaceTemp: number | null;
370
+ temp10cm: number | null;
371
+ }>, "many">;
372
+ avgMoisture: z.ZodNullable<z.ZodNumber>;
373
+ moistureTrend: z.ZodNullable<z.ZodEnum<["increasing", "stable", "decreasing"]>>;
374
+ lastReadingDate: z.ZodNullable<z.ZodString>;
375
+ }, "strip", z.ZodTypeAny, {
376
+ fieldId: string;
377
+ fieldName: string;
378
+ readings: {
379
+ readingDate: string;
380
+ soilMoisture: number | null;
381
+ surfaceTemp: number | null;
382
+ temp10cm: number | null;
383
+ }[];
384
+ avgMoisture: number | null;
385
+ moistureTrend: "stable" | "increasing" | "decreasing" | null;
386
+ lastReadingDate: string | null;
387
+ }, {
388
+ fieldId: string;
389
+ fieldName: string;
390
+ readings: {
391
+ readingDate: string;
392
+ soilMoisture: number | null;
393
+ surfaceTemp: number | null;
394
+ temp10cm: number | null;
395
+ }[];
396
+ avgMoisture: number | null;
397
+ moistureTrend: "stable" | "increasing" | "decreasing" | null;
398
+ lastReadingDate: string | null;
399
+ }>;
400
+ export type SoilReading = z.infer<typeof soilReadingSchema>;
401
+ export type SoilTrend = z.infer<typeof soilTrendSchema>;
402
+ export declare const historicalNDVIDataPointSchema: z.ZodObject<{
403
+ date: z.ZodString;
404
+ ndvi: z.ZodNumber;
405
+ source: z.ZodEnum<["sentinel-2", "landsat-8", "modis"]>;
406
+ cloudCoverage: z.ZodNumber;
407
+ imageCoverage: z.ZodNumber;
408
+ }, "strip", z.ZodTypeAny, {
409
+ date: string;
410
+ source: "sentinel-2" | "landsat-8" | "modis";
411
+ ndvi: number;
412
+ cloudCoverage: number;
413
+ imageCoverage: number;
414
+ }, {
415
+ date: string;
416
+ source: "sentinel-2" | "landsat-8" | "modis";
417
+ ndvi: number;
418
+ cloudCoverage: number;
419
+ imageCoverage: number;
420
+ }>;
421
+ export type HistoricalNDVIDataPoint = z.infer<typeof historicalNDVIDataPointSchema>;
216
422
  //# sourceMappingURL=field-monitoring.schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-monitoring.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/field-monitoring.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AAGF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAG1E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAGpE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;EAMhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAGpE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;EAOpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAG5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;EAE5B,CAAC;AAGH,eAAO,MAAM,6BAA6B;;;;;;;;;EAGxC,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;EAG7C,CAAC"}
1
+ {"version":3,"file":"field-monitoring.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/field-monitoring.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AAGF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAG1E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAGpE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;EAMhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAGpE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;EAOpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAG5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;EAE5B,CAAC;AAGH,eAAO,MAAM,6BAA6B;;;;;;;;;EAGxC,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;EAG7C,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAGxD,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;EAMxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC"}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fieldMonitoringErrorResponseSchema = exports.triggerAnalysisResponseSchema = exports.alertsQuerySchema = exports.ndviTrendQuerySchema = exports.farmMonitoringStatsSchema = exports.fieldComparisonSchema = exports.fieldAlertSchema = exports.weeklyNDVIStatsSchema = exports.ndviTrendDataPointSchema = exports.fieldMonitoringSummarySchema = void 0;
3
+ exports.historicalNDVIDataPointSchema = exports.soilTrendSchema = exports.soilReadingSchema = exports.fieldMonitoringErrorResponseSchema = exports.triggerAnalysisResponseSchema = exports.alertsQuerySchema = exports.ndviTrendQuerySchema = exports.farmMonitoringStatsSchema = exports.fieldComparisonSchema = exports.fieldAlertSchema = exports.weeklyNDVIStatsSchema = exports.ndviTrendDataPointSchema = exports.fieldMonitoringSummarySchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const recommendations_schemas_1 = require("./recommendations.schemas");
5
6
  // Field Monitoring Summary Schema
6
7
  exports.fieldMonitoringSummarySchema = zod_1.z.object({
7
8
  id: zod_1.z.string().uuid(),
@@ -46,7 +47,7 @@ exports.fieldAlertSchema = zod_1.z.object({
46
47
  severity: zod_1.z.enum(['low', 'medium', 'high', 'critical']),
47
48
  title: zod_1.z.string(),
48
49
  message: zod_1.z.string(),
49
- recommendation: zod_1.z.string().nullable(),
50
+ recommendations: zod_1.z.array(recommendations_schemas_1.recommendationSchema).nullable(),
50
51
  status: zod_1.z.enum(['active', 'acknowledged', 'resolved']),
51
52
  acknowledgedAt: zod_1.z.string().datetime().nullable(),
52
53
  acknowledgedBy: zod_1.z.string().nullable(),
@@ -90,3 +91,26 @@ exports.fieldMonitoringErrorResponseSchema = zod_1.z.object({
90
91
  message: zod_1.z.string(),
91
92
  code: zod_1.z.string().optional(),
92
93
  });
94
+ // Soil Monitoring Schemas
95
+ exports.soilReadingSchema = zod_1.z.object({
96
+ readingDate: zod_1.z.string().datetime(),
97
+ soilMoisture: zod_1.z.number().min(0).max(1).nullable(), // m³/m³
98
+ surfaceTemp: zod_1.z.number().nullable(), // Kelvins
99
+ temp10cm: zod_1.z.number().nullable(), // Kelvins
100
+ });
101
+ exports.soilTrendSchema = zod_1.z.object({
102
+ fieldId: zod_1.z.string().uuid(),
103
+ fieldName: zod_1.z.string(),
104
+ readings: zod_1.z.array(exports.soilReadingSchema),
105
+ avgMoisture: zod_1.z.number().nullable(),
106
+ moistureTrend: zod_1.z.enum(['increasing', 'stable', 'decreasing']).nullable(),
107
+ lastReadingDate: zod_1.z.string().datetime().nullable(),
108
+ });
109
+ // Historical NDVI Schemas
110
+ exports.historicalNDVIDataPointSchema = zod_1.z.object({
111
+ date: zod_1.z.string().datetime(),
112
+ ndvi: zod_1.z.number().min(-1).max(1),
113
+ source: zod_1.z.enum(['sentinel-2', 'landsat-8', 'modis']),
114
+ cloudCoverage: zod_1.z.number().min(0).max(100),
115
+ imageCoverage: zod_1.z.number().min(0).max(100),
116
+ });