@deepintel-ltd/farmpro-contracts 1.7.21 → 1.9.0

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,1510 @@
1
+ import { z } from 'zod';
2
+ export declare const deviceGatewayAdminRouter: {
3
+ createDevice: {
4
+ pathParams: z.ZodObject<{
5
+ farmId: z.ZodString;
6
+ fieldId: z.ZodString;
7
+ }, "strip", z.ZodTypeAny, {
8
+ farmId: string;
9
+ fieldId: string;
10
+ }, {
11
+ farmId: string;
12
+ fieldId: string;
13
+ }>;
14
+ summary: "Register a field edge device and generate API key";
15
+ method: "POST";
16
+ body: z.ZodObject<{
17
+ name: z.ZodString;
18
+ config: z.ZodOptional<z.ZodObject<{
19
+ heartbeatIntervalSec: z.ZodOptional<z.ZodNumber>;
20
+ commandPollIntervalSec: z.ZodOptional<z.ZodNumber>;
21
+ sensorIntervals: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
22
+ pumpCalibration: z.ZodOptional<z.ZodObject<{
23
+ fert_pump_a: z.ZodOptional<z.ZodObject<{
24
+ mlPerSecond: z.ZodNumber;
25
+ calibratedAt: z.ZodOptional<z.ZodString>;
26
+ }, "strip", z.ZodTypeAny, {
27
+ mlPerSecond: number;
28
+ calibratedAt?: string | undefined;
29
+ }, {
30
+ mlPerSecond: number;
31
+ calibratedAt?: string | undefined;
32
+ }>>;
33
+ fert_pump_b: z.ZodOptional<z.ZodObject<{
34
+ mlPerSecond: z.ZodNumber;
35
+ calibratedAt: z.ZodOptional<z.ZodString>;
36
+ }, "strip", z.ZodTypeAny, {
37
+ mlPerSecond: number;
38
+ calibratedAt?: string | undefined;
39
+ }, {
40
+ mlPerSecond: number;
41
+ calibratedAt?: string | undefined;
42
+ }>>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ fert_pump_a?: {
45
+ mlPerSecond: number;
46
+ calibratedAt?: string | undefined;
47
+ } | undefined;
48
+ fert_pump_b?: {
49
+ mlPerSecond: number;
50
+ calibratedAt?: string | undefined;
51
+ } | undefined;
52
+ }, {
53
+ fert_pump_a?: {
54
+ mlPerSecond: number;
55
+ calibratedAt?: string | undefined;
56
+ } | undefined;
57
+ fert_pump_b?: {
58
+ mlPerSecond: number;
59
+ calibratedAt?: string | undefined;
60
+ } | undefined;
61
+ }>>;
62
+ gpioMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ heartbeatIntervalSec?: number | undefined;
65
+ commandPollIntervalSec?: number | undefined;
66
+ sensorIntervals?: Record<string, number> | undefined;
67
+ pumpCalibration?: {
68
+ fert_pump_a?: {
69
+ mlPerSecond: number;
70
+ calibratedAt?: string | undefined;
71
+ } | undefined;
72
+ fert_pump_b?: {
73
+ mlPerSecond: number;
74
+ calibratedAt?: string | undefined;
75
+ } | undefined;
76
+ } | undefined;
77
+ gpioMap?: Record<string, number> | undefined;
78
+ }, {
79
+ heartbeatIntervalSec?: number | undefined;
80
+ commandPollIntervalSec?: number | undefined;
81
+ sensorIntervals?: Record<string, number> | undefined;
82
+ pumpCalibration?: {
83
+ fert_pump_a?: {
84
+ mlPerSecond: number;
85
+ calibratedAt?: string | undefined;
86
+ } | undefined;
87
+ fert_pump_b?: {
88
+ mlPerSecond: number;
89
+ calibratedAt?: string | undefined;
90
+ } | undefined;
91
+ } | undefined;
92
+ gpioMap?: Record<string, number> | undefined;
93
+ }>>;
94
+ fieldType: z.ZodOptional<z.ZodEnum<["GREENHOUSE", "OPEN_FIELD"]>>;
95
+ transport: z.ZodOptional<z.ZodEnum<["WIFI", "LORA", "CELLULAR_DIRECT"]>>;
96
+ gatewayId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
97
+ }, "strip", z.ZodTypeAny, {
98
+ name: string;
99
+ config?: {
100
+ heartbeatIntervalSec?: number | undefined;
101
+ commandPollIntervalSec?: number | undefined;
102
+ sensorIntervals?: Record<string, number> | undefined;
103
+ pumpCalibration?: {
104
+ fert_pump_a?: {
105
+ mlPerSecond: number;
106
+ calibratedAt?: string | undefined;
107
+ } | undefined;
108
+ fert_pump_b?: {
109
+ mlPerSecond: number;
110
+ calibratedAt?: string | undefined;
111
+ } | undefined;
112
+ } | undefined;
113
+ gpioMap?: Record<string, number> | undefined;
114
+ } | undefined;
115
+ fieldType?: "GREENHOUSE" | "OPEN_FIELD" | undefined;
116
+ transport?: "WIFI" | "LORA" | "CELLULAR_DIRECT" | undefined;
117
+ gatewayId?: string | null | undefined;
118
+ }, {
119
+ name: string;
120
+ config?: {
121
+ heartbeatIntervalSec?: number | undefined;
122
+ commandPollIntervalSec?: number | undefined;
123
+ sensorIntervals?: Record<string, number> | undefined;
124
+ pumpCalibration?: {
125
+ fert_pump_a?: {
126
+ mlPerSecond: number;
127
+ calibratedAt?: string | undefined;
128
+ } | undefined;
129
+ fert_pump_b?: {
130
+ mlPerSecond: number;
131
+ calibratedAt?: string | undefined;
132
+ } | undefined;
133
+ } | undefined;
134
+ gpioMap?: Record<string, number> | undefined;
135
+ } | undefined;
136
+ fieldType?: "GREENHOUSE" | "OPEN_FIELD" | undefined;
137
+ transport?: "WIFI" | "LORA" | "CELLULAR_DIRECT" | undefined;
138
+ gatewayId?: string | null | undefined;
139
+ }>;
140
+ path: "/farms/:farmId/fields/:fieldId/devices";
141
+ responses: {
142
+ 201: z.ZodObject<{
143
+ device: z.ZodObject<{
144
+ id: z.ZodString;
145
+ name: z.ZodString;
146
+ fieldId: z.ZodString;
147
+ farmId: z.ZodString;
148
+ createdAt: z.ZodString;
149
+ }, "strip", z.ZodTypeAny, {
150
+ id: string;
151
+ createdAt: string;
152
+ name: string;
153
+ farmId: string;
154
+ fieldId: string;
155
+ }, {
156
+ id: string;
157
+ createdAt: string;
158
+ name: string;
159
+ farmId: string;
160
+ fieldId: string;
161
+ }>;
162
+ apiKey: z.ZodString;
163
+ }, "strip", z.ZodTypeAny, {
164
+ device: {
165
+ id: string;
166
+ createdAt: string;
167
+ name: string;
168
+ farmId: string;
169
+ fieldId: string;
170
+ };
171
+ apiKey: string;
172
+ }, {
173
+ device: {
174
+ id: string;
175
+ createdAt: string;
176
+ name: string;
177
+ farmId: string;
178
+ fieldId: string;
179
+ };
180
+ apiKey: string;
181
+ }>;
182
+ 401: z.ZodObject<{
183
+ message: z.ZodString;
184
+ code: z.ZodString;
185
+ }, "strip", z.ZodTypeAny, {
186
+ code: string;
187
+ message: string;
188
+ }, {
189
+ code: string;
190
+ message: string;
191
+ }>;
192
+ 403: z.ZodObject<{
193
+ message: z.ZodString;
194
+ code: z.ZodString;
195
+ }, "strip", z.ZodTypeAny, {
196
+ code: string;
197
+ message: string;
198
+ }, {
199
+ code: string;
200
+ message: string;
201
+ }>;
202
+ 404: z.ZodObject<{
203
+ message: z.ZodString;
204
+ code: z.ZodString;
205
+ }, "strip", z.ZodTypeAny, {
206
+ code: string;
207
+ message: string;
208
+ }, {
209
+ code: string;
210
+ message: string;
211
+ }>;
212
+ };
213
+ };
214
+ listDevices: {
215
+ pathParams: z.ZodObject<{
216
+ farmId: z.ZodString;
217
+ fieldId: z.ZodString;
218
+ }, "strip", z.ZodTypeAny, {
219
+ farmId: string;
220
+ fieldId: string;
221
+ }, {
222
+ farmId: string;
223
+ fieldId: string;
224
+ }>;
225
+ summary: "List field devices for a field";
226
+ method: "GET";
227
+ path: "/farms/:farmId/fields/:fieldId/devices";
228
+ responses: {
229
+ 200: z.ZodObject<{
230
+ devices: z.ZodArray<z.ZodObject<{
231
+ id: z.ZodString;
232
+ name: z.ZodString;
233
+ fieldId: z.ZodString;
234
+ farmId: z.ZodString;
235
+ fieldType: z.ZodEnum<["GREENHOUSE", "OPEN_FIELD"]>;
236
+ transport: z.ZodEnum<["WIFI", "LORA", "CELLULAR_DIRECT"]>;
237
+ gatewayId: z.ZodNullable<z.ZodString>;
238
+ gatewayName: z.ZodNullable<z.ZodString>;
239
+ lastSeenAt: z.ZodNullable<z.ZodString>;
240
+ bufferedReadingsCount: z.ZodNullable<z.ZodNumber>;
241
+ bufferOverflow: z.ZodBoolean;
242
+ firmwareVersion: z.ZodNullable<z.ZodString>;
243
+ isOnline: z.ZodBoolean;
244
+ config: z.ZodNullable<z.ZodObject<{
245
+ heartbeatIntervalSec: z.ZodOptional<z.ZodNumber>;
246
+ commandPollIntervalSec: z.ZodOptional<z.ZodNumber>;
247
+ sensorIntervals: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
248
+ pumpCalibration: z.ZodOptional<z.ZodObject<{
249
+ fert_pump_a: z.ZodOptional<z.ZodObject<{
250
+ mlPerSecond: z.ZodNumber;
251
+ calibratedAt: z.ZodOptional<z.ZodString>;
252
+ }, "strip", z.ZodTypeAny, {
253
+ mlPerSecond: number;
254
+ calibratedAt?: string | undefined;
255
+ }, {
256
+ mlPerSecond: number;
257
+ calibratedAt?: string | undefined;
258
+ }>>;
259
+ fert_pump_b: z.ZodOptional<z.ZodObject<{
260
+ mlPerSecond: z.ZodNumber;
261
+ calibratedAt: z.ZodOptional<z.ZodString>;
262
+ }, "strip", z.ZodTypeAny, {
263
+ mlPerSecond: number;
264
+ calibratedAt?: string | undefined;
265
+ }, {
266
+ mlPerSecond: number;
267
+ calibratedAt?: string | undefined;
268
+ }>>;
269
+ }, "strip", z.ZodTypeAny, {
270
+ fert_pump_a?: {
271
+ mlPerSecond: number;
272
+ calibratedAt?: string | undefined;
273
+ } | undefined;
274
+ fert_pump_b?: {
275
+ mlPerSecond: number;
276
+ calibratedAt?: string | undefined;
277
+ } | undefined;
278
+ }, {
279
+ fert_pump_a?: {
280
+ mlPerSecond: number;
281
+ calibratedAt?: string | undefined;
282
+ } | undefined;
283
+ fert_pump_b?: {
284
+ mlPerSecond: number;
285
+ calibratedAt?: string | undefined;
286
+ } | undefined;
287
+ }>>;
288
+ gpioMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
289
+ }, "strip", z.ZodTypeAny, {
290
+ heartbeatIntervalSec?: number | undefined;
291
+ commandPollIntervalSec?: number | undefined;
292
+ sensorIntervals?: Record<string, number> | undefined;
293
+ pumpCalibration?: {
294
+ fert_pump_a?: {
295
+ mlPerSecond: number;
296
+ calibratedAt?: string | undefined;
297
+ } | undefined;
298
+ fert_pump_b?: {
299
+ mlPerSecond: number;
300
+ calibratedAt?: string | undefined;
301
+ } | undefined;
302
+ } | undefined;
303
+ gpioMap?: Record<string, number> | undefined;
304
+ }, {
305
+ heartbeatIntervalSec?: number | undefined;
306
+ commandPollIntervalSec?: number | undefined;
307
+ sensorIntervals?: Record<string, number> | undefined;
308
+ pumpCalibration?: {
309
+ fert_pump_a?: {
310
+ mlPerSecond: number;
311
+ calibratedAt?: string | undefined;
312
+ } | undefined;
313
+ fert_pump_b?: {
314
+ mlPerSecond: number;
315
+ calibratedAt?: string | undefined;
316
+ } | undefined;
317
+ } | undefined;
318
+ gpioMap?: Record<string, number> | undefined;
319
+ }>>;
320
+ createdAt: z.ZodString;
321
+ }, "strip", z.ZodTypeAny, {
322
+ id: string;
323
+ createdAt: string;
324
+ name: string;
325
+ farmId: string;
326
+ fieldId: string;
327
+ firmwareVersion: string | null;
328
+ bufferedReadingsCount: number | null;
329
+ bufferOverflow: boolean;
330
+ config: {
331
+ heartbeatIntervalSec?: number | undefined;
332
+ commandPollIntervalSec?: number | undefined;
333
+ sensorIntervals?: Record<string, number> | undefined;
334
+ pumpCalibration?: {
335
+ fert_pump_a?: {
336
+ mlPerSecond: number;
337
+ calibratedAt?: string | undefined;
338
+ } | undefined;
339
+ fert_pump_b?: {
340
+ mlPerSecond: number;
341
+ calibratedAt?: string | undefined;
342
+ } | undefined;
343
+ } | undefined;
344
+ gpioMap?: Record<string, number> | undefined;
345
+ } | null;
346
+ fieldType: "GREENHOUSE" | "OPEN_FIELD";
347
+ transport: "WIFI" | "LORA" | "CELLULAR_DIRECT";
348
+ gatewayId: string | null;
349
+ gatewayName: string | null;
350
+ lastSeenAt: string | null;
351
+ isOnline: boolean;
352
+ }, {
353
+ id: string;
354
+ createdAt: string;
355
+ name: string;
356
+ farmId: string;
357
+ fieldId: string;
358
+ firmwareVersion: string | null;
359
+ bufferedReadingsCount: number | null;
360
+ bufferOverflow: boolean;
361
+ config: {
362
+ heartbeatIntervalSec?: number | undefined;
363
+ commandPollIntervalSec?: number | undefined;
364
+ sensorIntervals?: Record<string, number> | undefined;
365
+ pumpCalibration?: {
366
+ fert_pump_a?: {
367
+ mlPerSecond: number;
368
+ calibratedAt?: string | undefined;
369
+ } | undefined;
370
+ fert_pump_b?: {
371
+ mlPerSecond: number;
372
+ calibratedAt?: string | undefined;
373
+ } | undefined;
374
+ } | undefined;
375
+ gpioMap?: Record<string, number> | undefined;
376
+ } | null;
377
+ fieldType: "GREENHOUSE" | "OPEN_FIELD";
378
+ transport: "WIFI" | "LORA" | "CELLULAR_DIRECT";
379
+ gatewayId: string | null;
380
+ gatewayName: string | null;
381
+ lastSeenAt: string | null;
382
+ isOnline: boolean;
383
+ }>, "many">;
384
+ }, "strip", z.ZodTypeAny, {
385
+ devices: {
386
+ id: string;
387
+ createdAt: string;
388
+ name: string;
389
+ farmId: string;
390
+ fieldId: string;
391
+ firmwareVersion: string | null;
392
+ bufferedReadingsCount: number | null;
393
+ bufferOverflow: boolean;
394
+ config: {
395
+ heartbeatIntervalSec?: number | undefined;
396
+ commandPollIntervalSec?: number | undefined;
397
+ sensorIntervals?: Record<string, number> | undefined;
398
+ pumpCalibration?: {
399
+ fert_pump_a?: {
400
+ mlPerSecond: number;
401
+ calibratedAt?: string | undefined;
402
+ } | undefined;
403
+ fert_pump_b?: {
404
+ mlPerSecond: number;
405
+ calibratedAt?: string | undefined;
406
+ } | undefined;
407
+ } | undefined;
408
+ gpioMap?: Record<string, number> | undefined;
409
+ } | null;
410
+ fieldType: "GREENHOUSE" | "OPEN_FIELD";
411
+ transport: "WIFI" | "LORA" | "CELLULAR_DIRECT";
412
+ gatewayId: string | null;
413
+ gatewayName: string | null;
414
+ lastSeenAt: string | null;
415
+ isOnline: boolean;
416
+ }[];
417
+ }, {
418
+ devices: {
419
+ id: string;
420
+ createdAt: string;
421
+ name: string;
422
+ farmId: string;
423
+ fieldId: string;
424
+ firmwareVersion: string | null;
425
+ bufferedReadingsCount: number | null;
426
+ bufferOverflow: boolean;
427
+ config: {
428
+ heartbeatIntervalSec?: number | undefined;
429
+ commandPollIntervalSec?: number | undefined;
430
+ sensorIntervals?: Record<string, number> | undefined;
431
+ pumpCalibration?: {
432
+ fert_pump_a?: {
433
+ mlPerSecond: number;
434
+ calibratedAt?: string | undefined;
435
+ } | undefined;
436
+ fert_pump_b?: {
437
+ mlPerSecond: number;
438
+ calibratedAt?: string | undefined;
439
+ } | undefined;
440
+ } | undefined;
441
+ gpioMap?: Record<string, number> | undefined;
442
+ } | null;
443
+ fieldType: "GREENHOUSE" | "OPEN_FIELD";
444
+ transport: "WIFI" | "LORA" | "CELLULAR_DIRECT";
445
+ gatewayId: string | null;
446
+ gatewayName: string | null;
447
+ lastSeenAt: string | null;
448
+ isOnline: boolean;
449
+ }[];
450
+ }>;
451
+ 401: z.ZodObject<{
452
+ message: z.ZodString;
453
+ code: z.ZodString;
454
+ }, "strip", z.ZodTypeAny, {
455
+ code: string;
456
+ message: string;
457
+ }, {
458
+ code: string;
459
+ message: string;
460
+ }>;
461
+ 403: z.ZodObject<{
462
+ message: z.ZodString;
463
+ code: z.ZodString;
464
+ }, "strip", z.ZodTypeAny, {
465
+ code: string;
466
+ message: string;
467
+ }, {
468
+ code: string;
469
+ message: string;
470
+ }>;
471
+ 404: z.ZodObject<{
472
+ message: z.ZodString;
473
+ code: z.ZodString;
474
+ }, "strip", z.ZodTypeAny, {
475
+ code: string;
476
+ message: string;
477
+ }, {
478
+ code: string;
479
+ message: string;
480
+ }>;
481
+ };
482
+ };
483
+ updateDevice: {
484
+ pathParams: z.ZodObject<{
485
+ farmId: z.ZodString;
486
+ fieldId: z.ZodString;
487
+ deviceId: z.ZodString;
488
+ }, "strip", z.ZodTypeAny, {
489
+ farmId: string;
490
+ fieldId: string;
491
+ deviceId: string;
492
+ }, {
493
+ farmId: string;
494
+ fieldId: string;
495
+ deviceId: string;
496
+ }>;
497
+ summary: "Update device config including pump calibration";
498
+ method: "PATCH";
499
+ body: z.ZodObject<{
500
+ name: z.ZodOptional<z.ZodString>;
501
+ config: z.ZodOptional<z.ZodObject<{
502
+ heartbeatIntervalSec: z.ZodOptional<z.ZodNumber>;
503
+ commandPollIntervalSec: z.ZodOptional<z.ZodNumber>;
504
+ sensorIntervals: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
505
+ pumpCalibration: z.ZodOptional<z.ZodObject<{
506
+ fert_pump_a: z.ZodOptional<z.ZodObject<{
507
+ mlPerSecond: z.ZodNumber;
508
+ calibratedAt: z.ZodOptional<z.ZodString>;
509
+ }, "strip", z.ZodTypeAny, {
510
+ mlPerSecond: number;
511
+ calibratedAt?: string | undefined;
512
+ }, {
513
+ mlPerSecond: number;
514
+ calibratedAt?: string | undefined;
515
+ }>>;
516
+ fert_pump_b: z.ZodOptional<z.ZodObject<{
517
+ mlPerSecond: z.ZodNumber;
518
+ calibratedAt: z.ZodOptional<z.ZodString>;
519
+ }, "strip", z.ZodTypeAny, {
520
+ mlPerSecond: number;
521
+ calibratedAt?: string | undefined;
522
+ }, {
523
+ mlPerSecond: number;
524
+ calibratedAt?: string | undefined;
525
+ }>>;
526
+ }, "strip", z.ZodTypeAny, {
527
+ fert_pump_a?: {
528
+ mlPerSecond: number;
529
+ calibratedAt?: string | undefined;
530
+ } | undefined;
531
+ fert_pump_b?: {
532
+ mlPerSecond: number;
533
+ calibratedAt?: string | undefined;
534
+ } | undefined;
535
+ }, {
536
+ fert_pump_a?: {
537
+ mlPerSecond: number;
538
+ calibratedAt?: string | undefined;
539
+ } | undefined;
540
+ fert_pump_b?: {
541
+ mlPerSecond: number;
542
+ calibratedAt?: string | undefined;
543
+ } | undefined;
544
+ }>>;
545
+ gpioMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
546
+ }, "strip", z.ZodTypeAny, {
547
+ heartbeatIntervalSec?: number | undefined;
548
+ commandPollIntervalSec?: number | undefined;
549
+ sensorIntervals?: Record<string, number> | undefined;
550
+ pumpCalibration?: {
551
+ fert_pump_a?: {
552
+ mlPerSecond: number;
553
+ calibratedAt?: string | undefined;
554
+ } | undefined;
555
+ fert_pump_b?: {
556
+ mlPerSecond: number;
557
+ calibratedAt?: string | undefined;
558
+ } | undefined;
559
+ } | undefined;
560
+ gpioMap?: Record<string, number> | undefined;
561
+ }, {
562
+ heartbeatIntervalSec?: number | undefined;
563
+ commandPollIntervalSec?: number | undefined;
564
+ sensorIntervals?: Record<string, number> | undefined;
565
+ pumpCalibration?: {
566
+ fert_pump_a?: {
567
+ mlPerSecond: number;
568
+ calibratedAt?: string | undefined;
569
+ } | undefined;
570
+ fert_pump_b?: {
571
+ mlPerSecond: number;
572
+ calibratedAt?: string | undefined;
573
+ } | undefined;
574
+ } | undefined;
575
+ gpioMap?: Record<string, number> | undefined;
576
+ }>>;
577
+ fieldType: z.ZodOptional<z.ZodEnum<["GREENHOUSE", "OPEN_FIELD"]>>;
578
+ transport: z.ZodOptional<z.ZodEnum<["WIFI", "LORA", "CELLULAR_DIRECT"]>>;
579
+ gatewayId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
580
+ }, "strip", z.ZodTypeAny, {
581
+ name?: string | undefined;
582
+ config?: {
583
+ heartbeatIntervalSec?: number | undefined;
584
+ commandPollIntervalSec?: number | undefined;
585
+ sensorIntervals?: Record<string, number> | undefined;
586
+ pumpCalibration?: {
587
+ fert_pump_a?: {
588
+ mlPerSecond: number;
589
+ calibratedAt?: string | undefined;
590
+ } | undefined;
591
+ fert_pump_b?: {
592
+ mlPerSecond: number;
593
+ calibratedAt?: string | undefined;
594
+ } | undefined;
595
+ } | undefined;
596
+ gpioMap?: Record<string, number> | undefined;
597
+ } | undefined;
598
+ fieldType?: "GREENHOUSE" | "OPEN_FIELD" | undefined;
599
+ transport?: "WIFI" | "LORA" | "CELLULAR_DIRECT" | undefined;
600
+ gatewayId?: string | null | undefined;
601
+ }, {
602
+ name?: string | undefined;
603
+ config?: {
604
+ heartbeatIntervalSec?: number | undefined;
605
+ commandPollIntervalSec?: number | undefined;
606
+ sensorIntervals?: Record<string, number> | undefined;
607
+ pumpCalibration?: {
608
+ fert_pump_a?: {
609
+ mlPerSecond: number;
610
+ calibratedAt?: string | undefined;
611
+ } | undefined;
612
+ fert_pump_b?: {
613
+ mlPerSecond: number;
614
+ calibratedAt?: string | undefined;
615
+ } | undefined;
616
+ } | undefined;
617
+ gpioMap?: Record<string, number> | undefined;
618
+ } | undefined;
619
+ fieldType?: "GREENHOUSE" | "OPEN_FIELD" | undefined;
620
+ transport?: "WIFI" | "LORA" | "CELLULAR_DIRECT" | undefined;
621
+ gatewayId?: string | null | undefined;
622
+ }>;
623
+ path: "/farms/:farmId/fields/:fieldId/devices/:deviceId";
624
+ responses: {
625
+ 200: z.ZodObject<{
626
+ device: z.ZodObject<{
627
+ id: z.ZodString;
628
+ name: z.ZodString;
629
+ fieldId: z.ZodString;
630
+ farmId: z.ZodString;
631
+ fieldType: z.ZodEnum<["GREENHOUSE", "OPEN_FIELD"]>;
632
+ transport: z.ZodEnum<["WIFI", "LORA", "CELLULAR_DIRECT"]>;
633
+ gatewayId: z.ZodNullable<z.ZodString>;
634
+ gatewayName: z.ZodNullable<z.ZodString>;
635
+ lastSeenAt: z.ZodNullable<z.ZodString>;
636
+ bufferedReadingsCount: z.ZodNullable<z.ZodNumber>;
637
+ bufferOverflow: z.ZodBoolean;
638
+ firmwareVersion: z.ZodNullable<z.ZodString>;
639
+ isOnline: z.ZodBoolean;
640
+ config: z.ZodNullable<z.ZodObject<{
641
+ heartbeatIntervalSec: z.ZodOptional<z.ZodNumber>;
642
+ commandPollIntervalSec: z.ZodOptional<z.ZodNumber>;
643
+ sensorIntervals: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
644
+ pumpCalibration: z.ZodOptional<z.ZodObject<{
645
+ fert_pump_a: z.ZodOptional<z.ZodObject<{
646
+ mlPerSecond: z.ZodNumber;
647
+ calibratedAt: z.ZodOptional<z.ZodString>;
648
+ }, "strip", z.ZodTypeAny, {
649
+ mlPerSecond: number;
650
+ calibratedAt?: string | undefined;
651
+ }, {
652
+ mlPerSecond: number;
653
+ calibratedAt?: string | undefined;
654
+ }>>;
655
+ fert_pump_b: z.ZodOptional<z.ZodObject<{
656
+ mlPerSecond: z.ZodNumber;
657
+ calibratedAt: z.ZodOptional<z.ZodString>;
658
+ }, "strip", z.ZodTypeAny, {
659
+ mlPerSecond: number;
660
+ calibratedAt?: string | undefined;
661
+ }, {
662
+ mlPerSecond: number;
663
+ calibratedAt?: string | undefined;
664
+ }>>;
665
+ }, "strip", z.ZodTypeAny, {
666
+ fert_pump_a?: {
667
+ mlPerSecond: number;
668
+ calibratedAt?: string | undefined;
669
+ } | undefined;
670
+ fert_pump_b?: {
671
+ mlPerSecond: number;
672
+ calibratedAt?: string | undefined;
673
+ } | undefined;
674
+ }, {
675
+ fert_pump_a?: {
676
+ mlPerSecond: number;
677
+ calibratedAt?: string | undefined;
678
+ } | undefined;
679
+ fert_pump_b?: {
680
+ mlPerSecond: number;
681
+ calibratedAt?: string | undefined;
682
+ } | undefined;
683
+ }>>;
684
+ gpioMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
685
+ }, "strip", z.ZodTypeAny, {
686
+ heartbeatIntervalSec?: number | undefined;
687
+ commandPollIntervalSec?: number | undefined;
688
+ sensorIntervals?: Record<string, number> | undefined;
689
+ pumpCalibration?: {
690
+ fert_pump_a?: {
691
+ mlPerSecond: number;
692
+ calibratedAt?: string | undefined;
693
+ } | undefined;
694
+ fert_pump_b?: {
695
+ mlPerSecond: number;
696
+ calibratedAt?: string | undefined;
697
+ } | undefined;
698
+ } | undefined;
699
+ gpioMap?: Record<string, number> | undefined;
700
+ }, {
701
+ heartbeatIntervalSec?: number | undefined;
702
+ commandPollIntervalSec?: number | undefined;
703
+ sensorIntervals?: Record<string, number> | undefined;
704
+ pumpCalibration?: {
705
+ fert_pump_a?: {
706
+ mlPerSecond: number;
707
+ calibratedAt?: string | undefined;
708
+ } | undefined;
709
+ fert_pump_b?: {
710
+ mlPerSecond: number;
711
+ calibratedAt?: string | undefined;
712
+ } | undefined;
713
+ } | undefined;
714
+ gpioMap?: Record<string, number> | undefined;
715
+ }>>;
716
+ createdAt: z.ZodString;
717
+ }, "strip", z.ZodTypeAny, {
718
+ id: string;
719
+ createdAt: string;
720
+ name: string;
721
+ farmId: string;
722
+ fieldId: string;
723
+ firmwareVersion: string | null;
724
+ bufferedReadingsCount: number | null;
725
+ bufferOverflow: boolean;
726
+ config: {
727
+ heartbeatIntervalSec?: number | undefined;
728
+ commandPollIntervalSec?: number | undefined;
729
+ sensorIntervals?: Record<string, number> | undefined;
730
+ pumpCalibration?: {
731
+ fert_pump_a?: {
732
+ mlPerSecond: number;
733
+ calibratedAt?: string | undefined;
734
+ } | undefined;
735
+ fert_pump_b?: {
736
+ mlPerSecond: number;
737
+ calibratedAt?: string | undefined;
738
+ } | undefined;
739
+ } | undefined;
740
+ gpioMap?: Record<string, number> | undefined;
741
+ } | null;
742
+ fieldType: "GREENHOUSE" | "OPEN_FIELD";
743
+ transport: "WIFI" | "LORA" | "CELLULAR_DIRECT";
744
+ gatewayId: string | null;
745
+ gatewayName: string | null;
746
+ lastSeenAt: string | null;
747
+ isOnline: boolean;
748
+ }, {
749
+ id: string;
750
+ createdAt: string;
751
+ name: string;
752
+ farmId: string;
753
+ fieldId: string;
754
+ firmwareVersion: string | null;
755
+ bufferedReadingsCount: number | null;
756
+ bufferOverflow: boolean;
757
+ config: {
758
+ heartbeatIntervalSec?: number | undefined;
759
+ commandPollIntervalSec?: number | undefined;
760
+ sensorIntervals?: Record<string, number> | undefined;
761
+ pumpCalibration?: {
762
+ fert_pump_a?: {
763
+ mlPerSecond: number;
764
+ calibratedAt?: string | undefined;
765
+ } | undefined;
766
+ fert_pump_b?: {
767
+ mlPerSecond: number;
768
+ calibratedAt?: string | undefined;
769
+ } | undefined;
770
+ } | undefined;
771
+ gpioMap?: Record<string, number> | undefined;
772
+ } | null;
773
+ fieldType: "GREENHOUSE" | "OPEN_FIELD";
774
+ transport: "WIFI" | "LORA" | "CELLULAR_DIRECT";
775
+ gatewayId: string | null;
776
+ gatewayName: string | null;
777
+ lastSeenAt: string | null;
778
+ isOnline: boolean;
779
+ }>;
780
+ }, "strip", z.ZodTypeAny, {
781
+ device: {
782
+ id: string;
783
+ createdAt: string;
784
+ name: string;
785
+ farmId: string;
786
+ fieldId: string;
787
+ firmwareVersion: string | null;
788
+ bufferedReadingsCount: number | null;
789
+ bufferOverflow: boolean;
790
+ config: {
791
+ heartbeatIntervalSec?: number | undefined;
792
+ commandPollIntervalSec?: number | undefined;
793
+ sensorIntervals?: Record<string, number> | undefined;
794
+ pumpCalibration?: {
795
+ fert_pump_a?: {
796
+ mlPerSecond: number;
797
+ calibratedAt?: string | undefined;
798
+ } | undefined;
799
+ fert_pump_b?: {
800
+ mlPerSecond: number;
801
+ calibratedAt?: string | undefined;
802
+ } | undefined;
803
+ } | undefined;
804
+ gpioMap?: Record<string, number> | undefined;
805
+ } | null;
806
+ fieldType: "GREENHOUSE" | "OPEN_FIELD";
807
+ transport: "WIFI" | "LORA" | "CELLULAR_DIRECT";
808
+ gatewayId: string | null;
809
+ gatewayName: string | null;
810
+ lastSeenAt: string | null;
811
+ isOnline: boolean;
812
+ };
813
+ }, {
814
+ device: {
815
+ id: string;
816
+ createdAt: string;
817
+ name: string;
818
+ farmId: string;
819
+ fieldId: string;
820
+ firmwareVersion: string | null;
821
+ bufferedReadingsCount: number | null;
822
+ bufferOverflow: boolean;
823
+ config: {
824
+ heartbeatIntervalSec?: number | undefined;
825
+ commandPollIntervalSec?: number | undefined;
826
+ sensorIntervals?: Record<string, number> | undefined;
827
+ pumpCalibration?: {
828
+ fert_pump_a?: {
829
+ mlPerSecond: number;
830
+ calibratedAt?: string | undefined;
831
+ } | undefined;
832
+ fert_pump_b?: {
833
+ mlPerSecond: number;
834
+ calibratedAt?: string | undefined;
835
+ } | undefined;
836
+ } | undefined;
837
+ gpioMap?: Record<string, number> | undefined;
838
+ } | null;
839
+ fieldType: "GREENHOUSE" | "OPEN_FIELD";
840
+ transport: "WIFI" | "LORA" | "CELLULAR_DIRECT";
841
+ gatewayId: string | null;
842
+ gatewayName: string | null;
843
+ lastSeenAt: string | null;
844
+ isOnline: boolean;
845
+ };
846
+ }>;
847
+ 401: z.ZodObject<{
848
+ message: z.ZodString;
849
+ code: z.ZodString;
850
+ }, "strip", z.ZodTypeAny, {
851
+ code: string;
852
+ message: string;
853
+ }, {
854
+ code: string;
855
+ message: string;
856
+ }>;
857
+ 403: z.ZodObject<{
858
+ message: z.ZodString;
859
+ code: z.ZodString;
860
+ }, "strip", z.ZodTypeAny, {
861
+ code: string;
862
+ message: string;
863
+ }, {
864
+ code: string;
865
+ message: string;
866
+ }>;
867
+ 404: z.ZodObject<{
868
+ message: z.ZodString;
869
+ code: z.ZodString;
870
+ }, "strip", z.ZodTypeAny, {
871
+ code: string;
872
+ message: string;
873
+ }, {
874
+ code: string;
875
+ message: string;
876
+ }>;
877
+ };
878
+ };
879
+ createActuator: {
880
+ pathParams: z.ZodObject<{
881
+ farmId: z.ZodString;
882
+ fieldId: z.ZodString;
883
+ deviceId: z.ZodString;
884
+ }, "strip", z.ZodTypeAny, {
885
+ farmId: string;
886
+ fieldId: string;
887
+ deviceId: string;
888
+ }, {
889
+ farmId: string;
890
+ fieldId: string;
891
+ deviceId: string;
892
+ }>;
893
+ summary: "Register an actuator on a field device";
894
+ method: "POST";
895
+ body: z.ZodObject<{
896
+ type: z.ZodEnum<["IRRIGATION_VALVE", "FERT_PUMP_A", "FERT_PUMP_B", "FAN"]>;
897
+ name: z.ZodString;
898
+ gpioPin: z.ZodOptional<z.ZodNumber>;
899
+ }, "strip", z.ZodTypeAny, {
900
+ type: "IRRIGATION_VALVE" | "FERT_PUMP_A" | "FERT_PUMP_B" | "FAN";
901
+ name: string;
902
+ gpioPin?: number | undefined;
903
+ }, {
904
+ type: "IRRIGATION_VALVE" | "FERT_PUMP_A" | "FERT_PUMP_B" | "FAN";
905
+ name: string;
906
+ gpioPin?: number | undefined;
907
+ }>;
908
+ path: "/farms/:farmId/fields/:fieldId/devices/:deviceId/actuators";
909
+ responses: {
910
+ 201: z.ZodObject<{
911
+ actuator: z.ZodObject<{
912
+ id: z.ZodString;
913
+ deviceId: z.ZodString;
914
+ fieldId: z.ZodString;
915
+ farmId: z.ZodString;
916
+ type: z.ZodEnum<["IRRIGATION_VALVE", "FERT_PUMP_A", "FERT_PUMP_B", "FAN"]>;
917
+ name: z.ZodString;
918
+ gpioPin: z.ZodNullable<z.ZodNumber>;
919
+ status: z.ZodString;
920
+ lastCommandAt: z.ZodNullable<z.ZodString>;
921
+ }, "strip", z.ZodTypeAny, {
922
+ type: "IRRIGATION_VALVE" | "FERT_PUMP_A" | "FERT_PUMP_B" | "FAN";
923
+ status: string;
924
+ id: string;
925
+ name: string;
926
+ farmId: string;
927
+ fieldId: string;
928
+ deviceId: string;
929
+ gpioPin: number | null;
930
+ lastCommandAt: string | null;
931
+ }, {
932
+ type: "IRRIGATION_VALVE" | "FERT_PUMP_A" | "FERT_PUMP_B" | "FAN";
933
+ status: string;
934
+ id: string;
935
+ name: string;
936
+ farmId: string;
937
+ fieldId: string;
938
+ deviceId: string;
939
+ gpioPin: number | null;
940
+ lastCommandAt: string | null;
941
+ }>;
942
+ }, "strip", z.ZodTypeAny, {
943
+ actuator: {
944
+ type: "IRRIGATION_VALVE" | "FERT_PUMP_A" | "FERT_PUMP_B" | "FAN";
945
+ status: string;
946
+ id: string;
947
+ name: string;
948
+ farmId: string;
949
+ fieldId: string;
950
+ deviceId: string;
951
+ gpioPin: number | null;
952
+ lastCommandAt: string | null;
953
+ };
954
+ }, {
955
+ actuator: {
956
+ type: "IRRIGATION_VALVE" | "FERT_PUMP_A" | "FERT_PUMP_B" | "FAN";
957
+ status: string;
958
+ id: string;
959
+ name: string;
960
+ farmId: string;
961
+ fieldId: string;
962
+ deviceId: string;
963
+ gpioPin: number | null;
964
+ lastCommandAt: string | null;
965
+ };
966
+ }>;
967
+ 401: z.ZodObject<{
968
+ message: z.ZodString;
969
+ code: z.ZodString;
970
+ }, "strip", z.ZodTypeAny, {
971
+ code: string;
972
+ message: string;
973
+ }, {
974
+ code: string;
975
+ message: string;
976
+ }>;
977
+ 403: z.ZodObject<{
978
+ message: z.ZodString;
979
+ code: z.ZodString;
980
+ }, "strip", z.ZodTypeAny, {
981
+ code: string;
982
+ message: string;
983
+ }, {
984
+ code: string;
985
+ message: string;
986
+ }>;
987
+ 404: z.ZodObject<{
988
+ message: z.ZodString;
989
+ code: z.ZodString;
990
+ }, "strip", z.ZodTypeAny, {
991
+ code: string;
992
+ message: string;
993
+ }, {
994
+ code: string;
995
+ message: string;
996
+ }>;
997
+ };
998
+ };
999
+ listActuators: {
1000
+ pathParams: z.ZodObject<{
1001
+ farmId: z.ZodString;
1002
+ fieldId: z.ZodString;
1003
+ deviceId: z.ZodString;
1004
+ }, "strip", z.ZodTypeAny, {
1005
+ farmId: string;
1006
+ fieldId: string;
1007
+ deviceId: string;
1008
+ }, {
1009
+ farmId: string;
1010
+ fieldId: string;
1011
+ deviceId: string;
1012
+ }>;
1013
+ summary: "List actuators for a greenhouse device";
1014
+ method: "GET";
1015
+ path: "/farms/:farmId/fields/:fieldId/devices/:deviceId/actuators";
1016
+ responses: {
1017
+ 200: z.ZodObject<{
1018
+ actuators: z.ZodArray<z.ZodObject<{
1019
+ id: z.ZodString;
1020
+ deviceId: z.ZodString;
1021
+ fieldId: z.ZodString;
1022
+ farmId: z.ZodString;
1023
+ type: z.ZodEnum<["IRRIGATION_VALVE", "FERT_PUMP_A", "FERT_PUMP_B", "FAN"]>;
1024
+ name: z.ZodString;
1025
+ gpioPin: z.ZodNullable<z.ZodNumber>;
1026
+ status: z.ZodString;
1027
+ lastCommandAt: z.ZodNullable<z.ZodString>;
1028
+ }, "strip", z.ZodTypeAny, {
1029
+ type: "IRRIGATION_VALVE" | "FERT_PUMP_A" | "FERT_PUMP_B" | "FAN";
1030
+ status: string;
1031
+ id: string;
1032
+ name: string;
1033
+ farmId: string;
1034
+ fieldId: string;
1035
+ deviceId: string;
1036
+ gpioPin: number | null;
1037
+ lastCommandAt: string | null;
1038
+ }, {
1039
+ type: "IRRIGATION_VALVE" | "FERT_PUMP_A" | "FERT_PUMP_B" | "FAN";
1040
+ status: string;
1041
+ id: string;
1042
+ name: string;
1043
+ farmId: string;
1044
+ fieldId: string;
1045
+ deviceId: string;
1046
+ gpioPin: number | null;
1047
+ lastCommandAt: string | null;
1048
+ }>, "many">;
1049
+ }, "strip", z.ZodTypeAny, {
1050
+ actuators: {
1051
+ type: "IRRIGATION_VALVE" | "FERT_PUMP_A" | "FERT_PUMP_B" | "FAN";
1052
+ status: string;
1053
+ id: string;
1054
+ name: string;
1055
+ farmId: string;
1056
+ fieldId: string;
1057
+ deviceId: string;
1058
+ gpioPin: number | null;
1059
+ lastCommandAt: string | null;
1060
+ }[];
1061
+ }, {
1062
+ actuators: {
1063
+ type: "IRRIGATION_VALVE" | "FERT_PUMP_A" | "FERT_PUMP_B" | "FAN";
1064
+ status: string;
1065
+ id: string;
1066
+ name: string;
1067
+ farmId: string;
1068
+ fieldId: string;
1069
+ deviceId: string;
1070
+ gpioPin: number | null;
1071
+ lastCommandAt: string | null;
1072
+ }[];
1073
+ }>;
1074
+ 401: z.ZodObject<{
1075
+ message: z.ZodString;
1076
+ code: z.ZodString;
1077
+ }, "strip", z.ZodTypeAny, {
1078
+ code: string;
1079
+ message: string;
1080
+ }, {
1081
+ code: string;
1082
+ message: string;
1083
+ }>;
1084
+ 403: z.ZodObject<{
1085
+ message: z.ZodString;
1086
+ code: z.ZodString;
1087
+ }, "strip", z.ZodTypeAny, {
1088
+ code: string;
1089
+ message: string;
1090
+ }, {
1091
+ code: string;
1092
+ message: string;
1093
+ }>;
1094
+ 404: z.ZodObject<{
1095
+ message: z.ZodString;
1096
+ code: z.ZodString;
1097
+ }, "strip", z.ZodTypeAny, {
1098
+ code: string;
1099
+ message: string;
1100
+ }, {
1101
+ code: string;
1102
+ message: string;
1103
+ }>;
1104
+ };
1105
+ };
1106
+ sendActuatorCommand: {
1107
+ pathParams: z.ZodObject<{
1108
+ farmId: z.ZodString;
1109
+ fieldId: z.ZodString;
1110
+ actuatorId: z.ZodString;
1111
+ }, "strip", z.ZodTypeAny, {
1112
+ farmId: string;
1113
+ fieldId: string;
1114
+ actuatorId: string;
1115
+ }, {
1116
+ farmId: string;
1117
+ fieldId: string;
1118
+ actuatorId: string;
1119
+ }>;
1120
+ summary: "Queue a manual actuator command (Run now)";
1121
+ method: "POST";
1122
+ body: z.ZodObject<{
1123
+ command: z.ZodEnum<["ON", "OFF", "PULSE"]>;
1124
+ durationSec: z.ZodOptional<z.ZodNumber>;
1125
+ source: z.ZodDefault<z.ZodEnum<["manual", "schedule", "rule"]>>;
1126
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1127
+ }, "strip", z.ZodTypeAny, {
1128
+ source: "manual" | "schedule" | "rule";
1129
+ command: "ON" | "OFF" | "PULSE";
1130
+ metadata?: Record<string, unknown> | undefined;
1131
+ durationSec?: number | undefined;
1132
+ }, {
1133
+ command: "ON" | "OFF" | "PULSE";
1134
+ source?: "manual" | "schedule" | "rule" | undefined;
1135
+ metadata?: Record<string, unknown> | undefined;
1136
+ durationSec?: number | undefined;
1137
+ }>;
1138
+ path: "/farms/:farmId/fields/:fieldId/actuators/:actuatorId/command";
1139
+ responses: {
1140
+ 201: z.ZodObject<{
1141
+ commandId: z.ZodString;
1142
+ status: z.ZodString;
1143
+ }, "strip", z.ZodTypeAny, {
1144
+ status: string;
1145
+ commandId: string;
1146
+ }, {
1147
+ status: string;
1148
+ commandId: string;
1149
+ }>;
1150
+ 401: z.ZodObject<{
1151
+ message: z.ZodString;
1152
+ code: z.ZodString;
1153
+ }, "strip", z.ZodTypeAny, {
1154
+ code: string;
1155
+ message: string;
1156
+ }, {
1157
+ code: string;
1158
+ message: string;
1159
+ }>;
1160
+ 403: z.ZodObject<{
1161
+ message: z.ZodString;
1162
+ code: z.ZodString;
1163
+ }, "strip", z.ZodTypeAny, {
1164
+ code: string;
1165
+ message: string;
1166
+ }, {
1167
+ code: string;
1168
+ message: string;
1169
+ }>;
1170
+ 404: z.ZodObject<{
1171
+ message: z.ZodString;
1172
+ code: z.ZodString;
1173
+ }, "strip", z.ZodTypeAny, {
1174
+ code: string;
1175
+ message: string;
1176
+ }, {
1177
+ code: string;
1178
+ message: string;
1179
+ }>;
1180
+ 422: z.ZodObject<{
1181
+ message: z.ZodString;
1182
+ code: z.ZodString;
1183
+ }, "strip", z.ZodTypeAny, {
1184
+ code: string;
1185
+ message: string;
1186
+ }, {
1187
+ code: string;
1188
+ message: string;
1189
+ }>;
1190
+ };
1191
+ };
1192
+ getFieldSummary: {
1193
+ pathParams: z.ZodObject<{
1194
+ farmId: z.ZodString;
1195
+ fieldId: z.ZodString;
1196
+ }, "strip", z.ZodTypeAny, {
1197
+ farmId: string;
1198
+ fieldId: string;
1199
+ }, {
1200
+ farmId: string;
1201
+ fieldId: string;
1202
+ }>;
1203
+ summary: "Field automation dashboard aggregate";
1204
+ method: "GET";
1205
+ path: "/farms/:farmId/fields/:fieldId/field/summary";
1206
+ responses: {
1207
+ 200: z.ZodObject<{
1208
+ fieldId: z.ZodString;
1209
+ fieldType: z.ZodNullable<z.ZodEnum<["GREENHOUSE", "OPEN_FIELD"]>>;
1210
+ devices: z.ZodArray<z.ZodObject<{
1211
+ id: z.ZodString;
1212
+ name: z.ZodString;
1213
+ fieldId: z.ZodString;
1214
+ farmId: z.ZodString;
1215
+ fieldType: z.ZodEnum<["GREENHOUSE", "OPEN_FIELD"]>;
1216
+ transport: z.ZodEnum<["WIFI", "LORA", "CELLULAR_DIRECT"]>;
1217
+ gatewayId: z.ZodNullable<z.ZodString>;
1218
+ gatewayName: z.ZodNullable<z.ZodString>;
1219
+ lastSeenAt: z.ZodNullable<z.ZodString>;
1220
+ bufferedReadingsCount: z.ZodNullable<z.ZodNumber>;
1221
+ bufferOverflow: z.ZodBoolean;
1222
+ firmwareVersion: z.ZodNullable<z.ZodString>;
1223
+ isOnline: z.ZodBoolean;
1224
+ config: z.ZodNullable<z.ZodObject<{
1225
+ heartbeatIntervalSec: z.ZodOptional<z.ZodNumber>;
1226
+ commandPollIntervalSec: z.ZodOptional<z.ZodNumber>;
1227
+ sensorIntervals: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1228
+ pumpCalibration: z.ZodOptional<z.ZodObject<{
1229
+ fert_pump_a: z.ZodOptional<z.ZodObject<{
1230
+ mlPerSecond: z.ZodNumber;
1231
+ calibratedAt: z.ZodOptional<z.ZodString>;
1232
+ }, "strip", z.ZodTypeAny, {
1233
+ mlPerSecond: number;
1234
+ calibratedAt?: string | undefined;
1235
+ }, {
1236
+ mlPerSecond: number;
1237
+ calibratedAt?: string | undefined;
1238
+ }>>;
1239
+ fert_pump_b: z.ZodOptional<z.ZodObject<{
1240
+ mlPerSecond: z.ZodNumber;
1241
+ calibratedAt: z.ZodOptional<z.ZodString>;
1242
+ }, "strip", z.ZodTypeAny, {
1243
+ mlPerSecond: number;
1244
+ calibratedAt?: string | undefined;
1245
+ }, {
1246
+ mlPerSecond: number;
1247
+ calibratedAt?: string | undefined;
1248
+ }>>;
1249
+ }, "strip", z.ZodTypeAny, {
1250
+ fert_pump_a?: {
1251
+ mlPerSecond: number;
1252
+ calibratedAt?: string | undefined;
1253
+ } | undefined;
1254
+ fert_pump_b?: {
1255
+ mlPerSecond: number;
1256
+ calibratedAt?: string | undefined;
1257
+ } | undefined;
1258
+ }, {
1259
+ fert_pump_a?: {
1260
+ mlPerSecond: number;
1261
+ calibratedAt?: string | undefined;
1262
+ } | undefined;
1263
+ fert_pump_b?: {
1264
+ mlPerSecond: number;
1265
+ calibratedAt?: string | undefined;
1266
+ } | undefined;
1267
+ }>>;
1268
+ gpioMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1269
+ }, "strip", z.ZodTypeAny, {
1270
+ heartbeatIntervalSec?: number | undefined;
1271
+ commandPollIntervalSec?: number | undefined;
1272
+ sensorIntervals?: Record<string, number> | undefined;
1273
+ pumpCalibration?: {
1274
+ fert_pump_a?: {
1275
+ mlPerSecond: number;
1276
+ calibratedAt?: string | undefined;
1277
+ } | undefined;
1278
+ fert_pump_b?: {
1279
+ mlPerSecond: number;
1280
+ calibratedAt?: string | undefined;
1281
+ } | undefined;
1282
+ } | undefined;
1283
+ gpioMap?: Record<string, number> | undefined;
1284
+ }, {
1285
+ heartbeatIntervalSec?: number | undefined;
1286
+ commandPollIntervalSec?: number | undefined;
1287
+ sensorIntervals?: Record<string, number> | undefined;
1288
+ pumpCalibration?: {
1289
+ fert_pump_a?: {
1290
+ mlPerSecond: number;
1291
+ calibratedAt?: string | undefined;
1292
+ } | undefined;
1293
+ fert_pump_b?: {
1294
+ mlPerSecond: number;
1295
+ calibratedAt?: string | undefined;
1296
+ } | undefined;
1297
+ } | undefined;
1298
+ gpioMap?: Record<string, number> | undefined;
1299
+ }>>;
1300
+ createdAt: z.ZodString;
1301
+ }, "strip", z.ZodTypeAny, {
1302
+ id: string;
1303
+ createdAt: string;
1304
+ name: string;
1305
+ farmId: string;
1306
+ fieldId: string;
1307
+ firmwareVersion: string | null;
1308
+ bufferedReadingsCount: number | null;
1309
+ bufferOverflow: boolean;
1310
+ config: {
1311
+ heartbeatIntervalSec?: number | undefined;
1312
+ commandPollIntervalSec?: number | undefined;
1313
+ sensorIntervals?: Record<string, number> | undefined;
1314
+ pumpCalibration?: {
1315
+ fert_pump_a?: {
1316
+ mlPerSecond: number;
1317
+ calibratedAt?: string | undefined;
1318
+ } | undefined;
1319
+ fert_pump_b?: {
1320
+ mlPerSecond: number;
1321
+ calibratedAt?: string | undefined;
1322
+ } | undefined;
1323
+ } | undefined;
1324
+ gpioMap?: Record<string, number> | undefined;
1325
+ } | null;
1326
+ fieldType: "GREENHOUSE" | "OPEN_FIELD";
1327
+ transport: "WIFI" | "LORA" | "CELLULAR_DIRECT";
1328
+ gatewayId: string | null;
1329
+ gatewayName: string | null;
1330
+ lastSeenAt: string | null;
1331
+ isOnline: boolean;
1332
+ }, {
1333
+ id: string;
1334
+ createdAt: string;
1335
+ name: string;
1336
+ farmId: string;
1337
+ fieldId: string;
1338
+ firmwareVersion: string | null;
1339
+ bufferedReadingsCount: number | null;
1340
+ bufferOverflow: boolean;
1341
+ config: {
1342
+ heartbeatIntervalSec?: number | undefined;
1343
+ commandPollIntervalSec?: number | undefined;
1344
+ sensorIntervals?: Record<string, number> | undefined;
1345
+ pumpCalibration?: {
1346
+ fert_pump_a?: {
1347
+ mlPerSecond: number;
1348
+ calibratedAt?: string | undefined;
1349
+ } | undefined;
1350
+ fert_pump_b?: {
1351
+ mlPerSecond: number;
1352
+ calibratedAt?: string | undefined;
1353
+ } | undefined;
1354
+ } | undefined;
1355
+ gpioMap?: Record<string, number> | undefined;
1356
+ } | null;
1357
+ fieldType: "GREENHOUSE" | "OPEN_FIELD";
1358
+ transport: "WIFI" | "LORA" | "CELLULAR_DIRECT";
1359
+ gatewayId: string | null;
1360
+ gatewayName: string | null;
1361
+ lastSeenAt: string | null;
1362
+ isOnline: boolean;
1363
+ }>, "many">;
1364
+ actuatorCount: z.ZodNumber;
1365
+ openAlertCount: z.ZodNumber;
1366
+ hasCameras: z.ZodBoolean;
1367
+ sensors: z.ZodArray<z.ZodObject<{
1368
+ id: z.ZodString;
1369
+ name: z.ZodString;
1370
+ type: z.ZodString;
1371
+ lastValue: z.ZodNullable<z.ZodNumber>;
1372
+ unit: z.ZodNullable<z.ZodString>;
1373
+ }, "strip", z.ZodTypeAny, {
1374
+ type: string;
1375
+ id: string;
1376
+ name: string;
1377
+ unit: string | null;
1378
+ lastValue: number | null;
1379
+ }, {
1380
+ type: string;
1381
+ id: string;
1382
+ name: string;
1383
+ unit: string | null;
1384
+ lastValue: number | null;
1385
+ }>, "many">;
1386
+ }, "strip", z.ZodTypeAny, {
1387
+ fieldId: string;
1388
+ sensors: {
1389
+ type: string;
1390
+ id: string;
1391
+ name: string;
1392
+ unit: string | null;
1393
+ lastValue: number | null;
1394
+ }[];
1395
+ fieldType: "GREENHOUSE" | "OPEN_FIELD" | null;
1396
+ devices: {
1397
+ id: string;
1398
+ createdAt: string;
1399
+ name: string;
1400
+ farmId: string;
1401
+ fieldId: string;
1402
+ firmwareVersion: string | null;
1403
+ bufferedReadingsCount: number | null;
1404
+ bufferOverflow: boolean;
1405
+ config: {
1406
+ heartbeatIntervalSec?: number | undefined;
1407
+ commandPollIntervalSec?: number | undefined;
1408
+ sensorIntervals?: Record<string, number> | undefined;
1409
+ pumpCalibration?: {
1410
+ fert_pump_a?: {
1411
+ mlPerSecond: number;
1412
+ calibratedAt?: string | undefined;
1413
+ } | undefined;
1414
+ fert_pump_b?: {
1415
+ mlPerSecond: number;
1416
+ calibratedAt?: string | undefined;
1417
+ } | undefined;
1418
+ } | undefined;
1419
+ gpioMap?: Record<string, number> | undefined;
1420
+ } | null;
1421
+ fieldType: "GREENHOUSE" | "OPEN_FIELD";
1422
+ transport: "WIFI" | "LORA" | "CELLULAR_DIRECT";
1423
+ gatewayId: string | null;
1424
+ gatewayName: string | null;
1425
+ lastSeenAt: string | null;
1426
+ isOnline: boolean;
1427
+ }[];
1428
+ actuatorCount: number;
1429
+ openAlertCount: number;
1430
+ hasCameras: boolean;
1431
+ }, {
1432
+ fieldId: string;
1433
+ sensors: {
1434
+ type: string;
1435
+ id: string;
1436
+ name: string;
1437
+ unit: string | null;
1438
+ lastValue: number | null;
1439
+ }[];
1440
+ fieldType: "GREENHOUSE" | "OPEN_FIELD" | null;
1441
+ devices: {
1442
+ id: string;
1443
+ createdAt: string;
1444
+ name: string;
1445
+ farmId: string;
1446
+ fieldId: string;
1447
+ firmwareVersion: string | null;
1448
+ bufferedReadingsCount: number | null;
1449
+ bufferOverflow: boolean;
1450
+ config: {
1451
+ heartbeatIntervalSec?: number | undefined;
1452
+ commandPollIntervalSec?: number | undefined;
1453
+ sensorIntervals?: Record<string, number> | undefined;
1454
+ pumpCalibration?: {
1455
+ fert_pump_a?: {
1456
+ mlPerSecond: number;
1457
+ calibratedAt?: string | undefined;
1458
+ } | undefined;
1459
+ fert_pump_b?: {
1460
+ mlPerSecond: number;
1461
+ calibratedAt?: string | undefined;
1462
+ } | undefined;
1463
+ } | undefined;
1464
+ gpioMap?: Record<string, number> | undefined;
1465
+ } | null;
1466
+ fieldType: "GREENHOUSE" | "OPEN_FIELD";
1467
+ transport: "WIFI" | "LORA" | "CELLULAR_DIRECT";
1468
+ gatewayId: string | null;
1469
+ gatewayName: string | null;
1470
+ lastSeenAt: string | null;
1471
+ isOnline: boolean;
1472
+ }[];
1473
+ actuatorCount: number;
1474
+ openAlertCount: number;
1475
+ hasCameras: boolean;
1476
+ }>;
1477
+ 401: z.ZodObject<{
1478
+ message: z.ZodString;
1479
+ code: z.ZodString;
1480
+ }, "strip", z.ZodTypeAny, {
1481
+ code: string;
1482
+ message: string;
1483
+ }, {
1484
+ code: string;
1485
+ message: string;
1486
+ }>;
1487
+ 403: z.ZodObject<{
1488
+ message: z.ZodString;
1489
+ code: z.ZodString;
1490
+ }, "strip", z.ZodTypeAny, {
1491
+ code: string;
1492
+ message: string;
1493
+ }, {
1494
+ code: string;
1495
+ message: string;
1496
+ }>;
1497
+ 404: z.ZodObject<{
1498
+ message: z.ZodString;
1499
+ code: z.ZodString;
1500
+ }, "strip", z.ZodTypeAny, {
1501
+ code: string;
1502
+ message: string;
1503
+ }, {
1504
+ code: string;
1505
+ message: string;
1506
+ }>;
1507
+ };
1508
+ };
1509
+ };
1510
+ //# sourceMappingURL=device-gateway-admin.routes.d.ts.map