@deepintel-ltd/farmpro-contracts 1.7.6 → 1.7.8

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.
@@ -0,0 +1,615 @@
1
+ import { z } from 'zod';
2
+ export declare const prescriptionZoneSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ geometry: z.ZodObject<{
5
+ type: z.ZodEnum<["Polygon", "MultiPolygon", "Point", "LineString"]>;
6
+ coordinates: z.ZodUnion<[z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, z.ZodArray<z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, "many">, z.ZodArray<z.ZodNumber, "many">, z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">]>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
9
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
10
+ }, {
11
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
12
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
13
+ }>;
14
+ zoneType: z.ZodEnum<["high", "medium", "low", "skip"]>;
15
+ ndviRange: z.ZodObject<{
16
+ min: z.ZodNumber;
17
+ max: z.ZodNumber;
18
+ }, "strip", z.ZodTypeAny, {
19
+ min: number;
20
+ max: number;
21
+ }, {
22
+ min: number;
23
+ max: number;
24
+ }>;
25
+ areaHectares: z.ZodNumber;
26
+ recommendedRate: z.ZodNumber;
27
+ rateUnit: z.ZodString;
28
+ inputType: z.ZodEnum<["fertilizer", "pesticide", "seed", "water"]>;
29
+ inputProduct: z.ZodOptional<z.ZodString>;
30
+ costPerHectare: z.ZodOptional<z.ZodNumber>;
31
+ totalCost: z.ZodOptional<z.ZodNumber>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ id: string;
34
+ geometry: {
35
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
36
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
37
+ };
38
+ zoneType: "low" | "medium" | "high" | "skip";
39
+ ndviRange: {
40
+ min: number;
41
+ max: number;
42
+ };
43
+ areaHectares: number;
44
+ recommendedRate: number;
45
+ rateUnit: string;
46
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
47
+ totalCost?: number | undefined;
48
+ inputProduct?: string | undefined;
49
+ costPerHectare?: number | undefined;
50
+ }, {
51
+ id: string;
52
+ geometry: {
53
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
54
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
55
+ };
56
+ zoneType: "low" | "medium" | "high" | "skip";
57
+ ndviRange: {
58
+ min: number;
59
+ max: number;
60
+ };
61
+ areaHectares: number;
62
+ recommendedRate: number;
63
+ rateUnit: string;
64
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
65
+ totalCost?: number | undefined;
66
+ inputProduct?: string | undefined;
67
+ costPerHectare?: number | undefined;
68
+ }>;
69
+ export declare const prescriptionMapSchema: z.ZodObject<{
70
+ id: z.ZodString;
71
+ fieldId: z.ZodString;
72
+ name: z.ZodString;
73
+ createdAt: z.ZodString;
74
+ sourceDataType: z.ZodEnum<["ndvi", "soil_moisture", "manual"]>;
75
+ sourceDate: z.ZodString;
76
+ zones: z.ZodArray<z.ZodObject<{
77
+ id: z.ZodString;
78
+ geometry: z.ZodObject<{
79
+ type: z.ZodEnum<["Polygon", "MultiPolygon", "Point", "LineString"]>;
80
+ coordinates: z.ZodUnion<[z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, z.ZodArray<z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, "many">, z.ZodArray<z.ZodNumber, "many">, z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">]>;
81
+ }, "strip", z.ZodTypeAny, {
82
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
83
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
84
+ }, {
85
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
86
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
87
+ }>;
88
+ zoneType: z.ZodEnum<["high", "medium", "low", "skip"]>;
89
+ ndviRange: z.ZodObject<{
90
+ min: z.ZodNumber;
91
+ max: z.ZodNumber;
92
+ }, "strip", z.ZodTypeAny, {
93
+ min: number;
94
+ max: number;
95
+ }, {
96
+ min: number;
97
+ max: number;
98
+ }>;
99
+ areaHectares: z.ZodNumber;
100
+ recommendedRate: z.ZodNumber;
101
+ rateUnit: z.ZodString;
102
+ inputType: z.ZodEnum<["fertilizer", "pesticide", "seed", "water"]>;
103
+ inputProduct: z.ZodOptional<z.ZodString>;
104
+ costPerHectare: z.ZodOptional<z.ZodNumber>;
105
+ totalCost: z.ZodOptional<z.ZodNumber>;
106
+ }, "strip", z.ZodTypeAny, {
107
+ id: string;
108
+ geometry: {
109
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
110
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
111
+ };
112
+ zoneType: "low" | "medium" | "high" | "skip";
113
+ ndviRange: {
114
+ min: number;
115
+ max: number;
116
+ };
117
+ areaHectares: number;
118
+ recommendedRate: number;
119
+ rateUnit: string;
120
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
121
+ totalCost?: number | undefined;
122
+ inputProduct?: string | undefined;
123
+ costPerHectare?: number | undefined;
124
+ }, {
125
+ id: string;
126
+ geometry: {
127
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
128
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
129
+ };
130
+ zoneType: "low" | "medium" | "high" | "skip";
131
+ ndviRange: {
132
+ min: number;
133
+ max: number;
134
+ };
135
+ areaHectares: number;
136
+ recommendedRate: number;
137
+ rateUnit: string;
138
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
139
+ totalCost?: number | undefined;
140
+ inputProduct?: string | undefined;
141
+ costPerHectare?: number | undefined;
142
+ }>, "many">;
143
+ totalArea: z.ZodNumber;
144
+ totalCost: z.ZodNumber;
145
+ exportFormats: z.ZodArray<z.ZodEnum<["shapefile", "geojson", "iso-xml"]>, "many">;
146
+ status: z.ZodEnum<["draft", "approved", "exported", "applied"]>;
147
+ }, "strip", z.ZodTypeAny, {
148
+ status: "draft" | "applied" | "approved" | "exported";
149
+ id: string;
150
+ createdAt: string;
151
+ name: string;
152
+ fieldId: string;
153
+ totalCost: number;
154
+ zones: {
155
+ id: string;
156
+ geometry: {
157
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
158
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
159
+ };
160
+ zoneType: "low" | "medium" | "high" | "skip";
161
+ ndviRange: {
162
+ min: number;
163
+ max: number;
164
+ };
165
+ areaHectares: number;
166
+ recommendedRate: number;
167
+ rateUnit: string;
168
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
169
+ totalCost?: number | undefined;
170
+ inputProduct?: string | undefined;
171
+ costPerHectare?: number | undefined;
172
+ }[];
173
+ sourceDataType: "ndvi" | "manual" | "soil_moisture";
174
+ sourceDate: string;
175
+ totalArea: number;
176
+ exportFormats: ("geojson" | "shapefile" | "iso-xml")[];
177
+ }, {
178
+ status: "draft" | "applied" | "approved" | "exported";
179
+ id: string;
180
+ createdAt: string;
181
+ name: string;
182
+ fieldId: string;
183
+ totalCost: number;
184
+ zones: {
185
+ id: string;
186
+ geometry: {
187
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
188
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
189
+ };
190
+ zoneType: "low" | "medium" | "high" | "skip";
191
+ ndviRange: {
192
+ min: number;
193
+ max: number;
194
+ };
195
+ areaHectares: number;
196
+ recommendedRate: number;
197
+ rateUnit: string;
198
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
199
+ totalCost?: number | undefined;
200
+ inputProduct?: string | undefined;
201
+ costPerHectare?: number | undefined;
202
+ }[];
203
+ sourceDataType: "ndvi" | "manual" | "soil_moisture";
204
+ sourceDate: string;
205
+ totalArea: number;
206
+ exportFormats: ("geojson" | "shapefile" | "iso-xml")[];
207
+ }>;
208
+ export declare const createPrescriptionMapBodySchema: z.ZodObject<{
209
+ name: z.ZodString;
210
+ sourceDataType: z.ZodEnum<["ndvi", "soil_moisture", "manual"]>;
211
+ sourceDate: z.ZodString;
212
+ zones: z.ZodArray<z.ZodObject<{
213
+ id: z.ZodString;
214
+ geometry: z.ZodObject<{
215
+ type: z.ZodEnum<["Polygon", "MultiPolygon", "Point", "LineString"]>;
216
+ coordinates: z.ZodUnion<[z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, z.ZodArray<z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, "many">, z.ZodArray<z.ZodNumber, "many">, z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">]>;
217
+ }, "strip", z.ZodTypeAny, {
218
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
219
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
220
+ }, {
221
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
222
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
223
+ }>;
224
+ zoneType: z.ZodEnum<["high", "medium", "low", "skip"]>;
225
+ ndviRange: z.ZodObject<{
226
+ min: z.ZodNumber;
227
+ max: z.ZodNumber;
228
+ }, "strip", z.ZodTypeAny, {
229
+ min: number;
230
+ max: number;
231
+ }, {
232
+ min: number;
233
+ max: number;
234
+ }>;
235
+ areaHectares: z.ZodNumber;
236
+ recommendedRate: z.ZodNumber;
237
+ rateUnit: z.ZodString;
238
+ inputType: z.ZodEnum<["fertilizer", "pesticide", "seed", "water"]>;
239
+ inputProduct: z.ZodOptional<z.ZodString>;
240
+ costPerHectare: z.ZodOptional<z.ZodNumber>;
241
+ totalCost: z.ZodOptional<z.ZodNumber>;
242
+ }, "strip", z.ZodTypeAny, {
243
+ id: string;
244
+ geometry: {
245
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
246
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
247
+ };
248
+ zoneType: "low" | "medium" | "high" | "skip";
249
+ ndviRange: {
250
+ min: number;
251
+ max: number;
252
+ };
253
+ areaHectares: number;
254
+ recommendedRate: number;
255
+ rateUnit: string;
256
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
257
+ totalCost?: number | undefined;
258
+ inputProduct?: string | undefined;
259
+ costPerHectare?: number | undefined;
260
+ }, {
261
+ id: string;
262
+ geometry: {
263
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
264
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
265
+ };
266
+ zoneType: "low" | "medium" | "high" | "skip";
267
+ ndviRange: {
268
+ min: number;
269
+ max: number;
270
+ };
271
+ areaHectares: number;
272
+ recommendedRate: number;
273
+ rateUnit: string;
274
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
275
+ totalCost?: number | undefined;
276
+ inputProduct?: string | undefined;
277
+ costPerHectare?: number | undefined;
278
+ }>, "many">;
279
+ }, "strip", z.ZodTypeAny, {
280
+ name: string;
281
+ zones: {
282
+ id: string;
283
+ geometry: {
284
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
285
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
286
+ };
287
+ zoneType: "low" | "medium" | "high" | "skip";
288
+ ndviRange: {
289
+ min: number;
290
+ max: number;
291
+ };
292
+ areaHectares: number;
293
+ recommendedRate: number;
294
+ rateUnit: string;
295
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
296
+ totalCost?: number | undefined;
297
+ inputProduct?: string | undefined;
298
+ costPerHectare?: number | undefined;
299
+ }[];
300
+ sourceDataType: "ndvi" | "manual" | "soil_moisture";
301
+ sourceDate: string;
302
+ }, {
303
+ name: string;
304
+ zones: {
305
+ id: string;
306
+ geometry: {
307
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
308
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
309
+ };
310
+ zoneType: "low" | "medium" | "high" | "skip";
311
+ ndviRange: {
312
+ min: number;
313
+ max: number;
314
+ };
315
+ areaHectares: number;
316
+ recommendedRate: number;
317
+ rateUnit: string;
318
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
319
+ totalCost?: number | undefined;
320
+ inputProduct?: string | undefined;
321
+ costPerHectare?: number | undefined;
322
+ }[];
323
+ sourceDataType: "ndvi" | "manual" | "soil_moisture";
324
+ sourceDate: string;
325
+ }>;
326
+ export declare const updatePrescriptionStatusBodySchema: z.ZodObject<{
327
+ status: z.ZodEnum<["draft", "approved", "exported", "applied"]>;
328
+ }, "strip", z.ZodTypeAny, {
329
+ status: "draft" | "applied" | "approved" | "exported";
330
+ }, {
331
+ status: "draft" | "applied" | "approved" | "exported";
332
+ }>;
333
+ export declare const prescriptionMapListResponseSchema: z.ZodArray<z.ZodObject<{
334
+ id: z.ZodString;
335
+ fieldId: z.ZodString;
336
+ name: z.ZodString;
337
+ createdAt: z.ZodString;
338
+ sourceDataType: z.ZodEnum<["ndvi", "soil_moisture", "manual"]>;
339
+ sourceDate: z.ZodString;
340
+ zones: z.ZodArray<z.ZodObject<{
341
+ id: z.ZodString;
342
+ geometry: z.ZodObject<{
343
+ type: z.ZodEnum<["Polygon", "MultiPolygon", "Point", "LineString"]>;
344
+ coordinates: z.ZodUnion<[z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, z.ZodArray<z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, "many">, z.ZodArray<z.ZodNumber, "many">, z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">]>;
345
+ }, "strip", z.ZodTypeAny, {
346
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
347
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
348
+ }, {
349
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
350
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
351
+ }>;
352
+ zoneType: z.ZodEnum<["high", "medium", "low", "skip"]>;
353
+ ndviRange: z.ZodObject<{
354
+ min: z.ZodNumber;
355
+ max: z.ZodNumber;
356
+ }, "strip", z.ZodTypeAny, {
357
+ min: number;
358
+ max: number;
359
+ }, {
360
+ min: number;
361
+ max: number;
362
+ }>;
363
+ areaHectares: z.ZodNumber;
364
+ recommendedRate: z.ZodNumber;
365
+ rateUnit: z.ZodString;
366
+ inputType: z.ZodEnum<["fertilizer", "pesticide", "seed", "water"]>;
367
+ inputProduct: z.ZodOptional<z.ZodString>;
368
+ costPerHectare: z.ZodOptional<z.ZodNumber>;
369
+ totalCost: z.ZodOptional<z.ZodNumber>;
370
+ }, "strip", z.ZodTypeAny, {
371
+ id: string;
372
+ geometry: {
373
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
374
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
375
+ };
376
+ zoneType: "low" | "medium" | "high" | "skip";
377
+ ndviRange: {
378
+ min: number;
379
+ max: number;
380
+ };
381
+ areaHectares: number;
382
+ recommendedRate: number;
383
+ rateUnit: string;
384
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
385
+ totalCost?: number | undefined;
386
+ inputProduct?: string | undefined;
387
+ costPerHectare?: number | undefined;
388
+ }, {
389
+ id: string;
390
+ geometry: {
391
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
392
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
393
+ };
394
+ zoneType: "low" | "medium" | "high" | "skip";
395
+ ndviRange: {
396
+ min: number;
397
+ max: number;
398
+ };
399
+ areaHectares: number;
400
+ recommendedRate: number;
401
+ rateUnit: string;
402
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
403
+ totalCost?: number | undefined;
404
+ inputProduct?: string | undefined;
405
+ costPerHectare?: number | undefined;
406
+ }>, "many">;
407
+ totalArea: z.ZodNumber;
408
+ totalCost: z.ZodNumber;
409
+ exportFormats: z.ZodArray<z.ZodEnum<["shapefile", "geojson", "iso-xml"]>, "many">;
410
+ status: z.ZodEnum<["draft", "approved", "exported", "applied"]>;
411
+ }, "strip", z.ZodTypeAny, {
412
+ status: "draft" | "applied" | "approved" | "exported";
413
+ id: string;
414
+ createdAt: string;
415
+ name: string;
416
+ fieldId: string;
417
+ totalCost: number;
418
+ zones: {
419
+ id: string;
420
+ geometry: {
421
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
422
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
423
+ };
424
+ zoneType: "low" | "medium" | "high" | "skip";
425
+ ndviRange: {
426
+ min: number;
427
+ max: number;
428
+ };
429
+ areaHectares: number;
430
+ recommendedRate: number;
431
+ rateUnit: string;
432
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
433
+ totalCost?: number | undefined;
434
+ inputProduct?: string | undefined;
435
+ costPerHectare?: number | undefined;
436
+ }[];
437
+ sourceDataType: "ndvi" | "manual" | "soil_moisture";
438
+ sourceDate: string;
439
+ totalArea: number;
440
+ exportFormats: ("geojson" | "shapefile" | "iso-xml")[];
441
+ }, {
442
+ status: "draft" | "applied" | "approved" | "exported";
443
+ id: string;
444
+ createdAt: string;
445
+ name: string;
446
+ fieldId: string;
447
+ totalCost: number;
448
+ zones: {
449
+ id: string;
450
+ geometry: {
451
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
452
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
453
+ };
454
+ zoneType: "low" | "medium" | "high" | "skip";
455
+ ndviRange: {
456
+ min: number;
457
+ max: number;
458
+ };
459
+ areaHectares: number;
460
+ recommendedRate: number;
461
+ rateUnit: string;
462
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
463
+ totalCost?: number | undefined;
464
+ inputProduct?: string | undefined;
465
+ costPerHectare?: number | undefined;
466
+ }[];
467
+ sourceDataType: "ndvi" | "manual" | "soil_moisture";
468
+ sourceDate: string;
469
+ totalArea: number;
470
+ exportFormats: ("geojson" | "shapefile" | "iso-xml")[];
471
+ }>, "many">;
472
+ export declare const prescriptionMapSingleResponseSchema: z.ZodObject<{
473
+ id: z.ZodString;
474
+ fieldId: z.ZodString;
475
+ name: z.ZodString;
476
+ createdAt: z.ZodString;
477
+ sourceDataType: z.ZodEnum<["ndvi", "soil_moisture", "manual"]>;
478
+ sourceDate: z.ZodString;
479
+ zones: z.ZodArray<z.ZodObject<{
480
+ id: z.ZodString;
481
+ geometry: z.ZodObject<{
482
+ type: z.ZodEnum<["Polygon", "MultiPolygon", "Point", "LineString"]>;
483
+ coordinates: z.ZodUnion<[z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, z.ZodArray<z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, "many">, z.ZodArray<z.ZodNumber, "many">, z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">]>;
484
+ }, "strip", z.ZodTypeAny, {
485
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
486
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
487
+ }, {
488
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
489
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
490
+ }>;
491
+ zoneType: z.ZodEnum<["high", "medium", "low", "skip"]>;
492
+ ndviRange: z.ZodObject<{
493
+ min: z.ZodNumber;
494
+ max: z.ZodNumber;
495
+ }, "strip", z.ZodTypeAny, {
496
+ min: number;
497
+ max: number;
498
+ }, {
499
+ min: number;
500
+ max: number;
501
+ }>;
502
+ areaHectares: z.ZodNumber;
503
+ recommendedRate: z.ZodNumber;
504
+ rateUnit: z.ZodString;
505
+ inputType: z.ZodEnum<["fertilizer", "pesticide", "seed", "water"]>;
506
+ inputProduct: z.ZodOptional<z.ZodString>;
507
+ costPerHectare: z.ZodOptional<z.ZodNumber>;
508
+ totalCost: z.ZodOptional<z.ZodNumber>;
509
+ }, "strip", z.ZodTypeAny, {
510
+ id: string;
511
+ geometry: {
512
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
513
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
514
+ };
515
+ zoneType: "low" | "medium" | "high" | "skip";
516
+ ndviRange: {
517
+ min: number;
518
+ max: number;
519
+ };
520
+ areaHectares: number;
521
+ recommendedRate: number;
522
+ rateUnit: string;
523
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
524
+ totalCost?: number | undefined;
525
+ inputProduct?: string | undefined;
526
+ costPerHectare?: number | undefined;
527
+ }, {
528
+ id: string;
529
+ geometry: {
530
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
531
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
532
+ };
533
+ zoneType: "low" | "medium" | "high" | "skip";
534
+ ndviRange: {
535
+ min: number;
536
+ max: number;
537
+ };
538
+ areaHectares: number;
539
+ recommendedRate: number;
540
+ rateUnit: string;
541
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
542
+ totalCost?: number | undefined;
543
+ inputProduct?: string | undefined;
544
+ costPerHectare?: number | undefined;
545
+ }>, "many">;
546
+ totalArea: z.ZodNumber;
547
+ totalCost: z.ZodNumber;
548
+ exportFormats: z.ZodArray<z.ZodEnum<["shapefile", "geojson", "iso-xml"]>, "many">;
549
+ status: z.ZodEnum<["draft", "approved", "exported", "applied"]>;
550
+ }, "strip", z.ZodTypeAny, {
551
+ status: "draft" | "applied" | "approved" | "exported";
552
+ id: string;
553
+ createdAt: string;
554
+ name: string;
555
+ fieldId: string;
556
+ totalCost: number;
557
+ zones: {
558
+ id: string;
559
+ geometry: {
560
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
561
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
562
+ };
563
+ zoneType: "low" | "medium" | "high" | "skip";
564
+ ndviRange: {
565
+ min: number;
566
+ max: number;
567
+ };
568
+ areaHectares: number;
569
+ recommendedRate: number;
570
+ rateUnit: string;
571
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
572
+ totalCost?: number | undefined;
573
+ inputProduct?: string | undefined;
574
+ costPerHectare?: number | undefined;
575
+ }[];
576
+ sourceDataType: "ndvi" | "manual" | "soil_moisture";
577
+ sourceDate: string;
578
+ totalArea: number;
579
+ exportFormats: ("geojson" | "shapefile" | "iso-xml")[];
580
+ }, {
581
+ status: "draft" | "applied" | "approved" | "exported";
582
+ id: string;
583
+ createdAt: string;
584
+ name: string;
585
+ fieldId: string;
586
+ totalCost: number;
587
+ zones: {
588
+ id: string;
589
+ geometry: {
590
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
591
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
592
+ };
593
+ zoneType: "low" | "medium" | "high" | "skip";
594
+ ndviRange: {
595
+ min: number;
596
+ max: number;
597
+ };
598
+ areaHectares: number;
599
+ recommendedRate: number;
600
+ rateUnit: string;
601
+ inputType: "seed" | "fertilizer" | "pesticide" | "water";
602
+ totalCost?: number | undefined;
603
+ inputProduct?: string | undefined;
604
+ costPerHectare?: number | undefined;
605
+ }[];
606
+ sourceDataType: "ndvi" | "manual" | "soil_moisture";
607
+ sourceDate: string;
608
+ totalArea: number;
609
+ exportFormats: ("geojson" | "shapefile" | "iso-xml")[];
610
+ }>;
611
+ export type PrescriptionMapResponse = z.infer<typeof prescriptionMapSchema>;
612
+ export type PrescriptionZoneResponse = z.infer<typeof prescriptionZoneSchema>;
613
+ export type CreatePrescriptionMapBody = z.infer<typeof createPrescriptionMapBodySchema>;
614
+ export type UpdatePrescriptionStatusBody = z.infer<typeof updatePrescriptionStatusBodySchema>;
615
+ //# sourceMappingURL=prescription-maps.schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prescription-maps.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/prescription-maps.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYjC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYhC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK1C,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;EAE7C,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAiC,CAAC;AAChF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAwB,CAAC;AAEzE,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC5E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC9E,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { z } from 'zod';
2
+ import { geoJSONGeometrySchema } from './common.schemas';
3
+ export const prescriptionZoneSchema = z.object({
4
+ id: z.string().uuid(),
5
+ geometry: geoJSONGeometrySchema,
6
+ zoneType: z.enum(['high', 'medium', 'low', 'skip']),
7
+ ndviRange: z.object({ min: z.number(), max: z.number() }),
8
+ areaHectares: z.number(),
9
+ recommendedRate: z.number(),
10
+ rateUnit: z.string(),
11
+ inputType: z.enum(['fertilizer', 'pesticide', 'seed', 'water']),
12
+ inputProduct: z.string().optional(),
13
+ costPerHectare: z.number().optional(),
14
+ totalCost: z.number().optional(),
15
+ });
16
+ export const prescriptionMapSchema = z.object({
17
+ id: z.string().uuid(),
18
+ fieldId: z.string().uuid(),
19
+ name: z.string(),
20
+ createdAt: z.string().datetime(),
21
+ sourceDataType: z.enum(['ndvi', 'soil_moisture', 'manual']),
22
+ sourceDate: z.string().datetime(),
23
+ zones: z.array(prescriptionZoneSchema),
24
+ totalArea: z.number(),
25
+ totalCost: z.number(),
26
+ exportFormats: z.array(z.enum(['shapefile', 'geojson', 'iso-xml'])),
27
+ status: z.enum(['draft', 'approved', 'exported', 'applied']),
28
+ });
29
+ export const createPrescriptionMapBodySchema = z.object({
30
+ name: z.string().min(1).max(200),
31
+ sourceDataType: z.enum(['ndvi', 'soil_moisture', 'manual']),
32
+ sourceDate: z.string().datetime(),
33
+ zones: z.array(prescriptionZoneSchema),
34
+ });
35
+ export const updatePrescriptionStatusBodySchema = z.object({
36
+ status: z.enum(['draft', 'approved', 'exported', 'applied']),
37
+ });
38
+ export const prescriptionMapListResponseSchema = z.array(prescriptionMapSchema);
39
+ export const prescriptionMapSingleResponseSchema = prescriptionMapSchema;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deepintel-ltd/farmpro-contracts",
3
- "version": "1.7.6",
3
+ "version": "1.7.8",
4
4
  "description": "Type-safe API contracts for FarmPro API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",