@deepintel-ltd/farmpro-contracts 1.16.13 → 1.16.15

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.
@@ -19,9 +19,12 @@ export declare const monitoringVisualizationRouter: {
19
19
  fieldId: z.ZodString;
20
20
  imageUrl: z.ZodString;
21
21
  captureDate: z.ZodString;
22
+ requestedDate: z.ZodOptional<z.ZodString>;
23
+ daysOffset: z.ZodOptional<z.ZodNumber>;
24
+ isNearestMatch: z.ZodOptional<z.ZodBoolean>;
22
25
  resolution: z.ZodString;
23
26
  cloudCoverage: z.ZodNumber;
24
- source: z.ZodEnum<["sentinel-2", "landsat-8", "openweather-agro"]>;
27
+ source: z.ZodEnum<["sentinel-2", "landsat-8", "openweather-agro", "modis"]>;
25
28
  bounds: z.ZodObject<{
26
29
  north: z.ZodNumber;
27
30
  south: z.ZodNumber;
@@ -52,7 +55,7 @@ export declare const monitoringVisualizationRouter: {
52
55
  sunElevation?: number | undefined;
53
56
  }>>;
54
57
  }, "strip", z.ZodTypeAny, {
55
- source: "sentinel-2" | "landsat-8" | "openweather-agro";
58
+ source: "sentinel-2" | "landsat-8" | "modis" | "openweather-agro";
56
59
  fieldId: string;
57
60
  imageUrl: string;
58
61
  cloudCoverage: number;
@@ -69,8 +72,11 @@ export declare const monitoringVisualizationRouter: {
69
72
  sunAzimuth?: number | undefined;
70
73
  sunElevation?: number | undefined;
71
74
  } | undefined;
75
+ requestedDate?: string | undefined;
76
+ daysOffset?: number | undefined;
77
+ isNearestMatch?: boolean | undefined;
72
78
  }, {
73
- source: "sentinel-2" | "landsat-8" | "openweather-agro";
79
+ source: "sentinel-2" | "landsat-8" | "modis" | "openweather-agro";
74
80
  fieldId: string;
75
81
  imageUrl: string;
76
82
  cloudCoverage: number;
@@ -87,6 +93,9 @@ export declare const monitoringVisualizationRouter: {
87
93
  sunAzimuth?: number | undefined;
88
94
  sunElevation?: number | undefined;
89
95
  } | undefined;
96
+ requestedDate?: string | undefined;
97
+ daysOffset?: number | undefined;
98
+ isNearestMatch?: boolean | undefined;
90
99
  }>;
91
100
  404: z.ZodObject<{
92
101
  message: z.ZodString;
@@ -129,6 +138,10 @@ export declare const monitoringVisualizationRouter: {
129
138
  fieldId: z.ZodString;
130
139
  ndviImageUrl: z.ZodString;
131
140
  captureDate: z.ZodString;
141
+ requestedDate: z.ZodOptional<z.ZodString>;
142
+ daysOffset: z.ZodOptional<z.ZodNumber>;
143
+ isNearestMatch: z.ZodOptional<z.ZodBoolean>;
144
+ cloudCoverage: z.ZodOptional<z.ZodNumber>;
132
145
  statistics: z.ZodObject<{
133
146
  min: z.ZodNumber;
134
147
  max: z.ZodNumber;
@@ -162,6 +175,22 @@ export declare const monitoringVisualizationRouter: {
162
175
  color: string;
163
176
  }>, "many">;
164
177
  source: z.ZodString;
178
+ bounds: z.ZodOptional<z.ZodObject<{
179
+ north: z.ZodNumber;
180
+ south: z.ZodNumber;
181
+ east: z.ZodNumber;
182
+ west: z.ZodNumber;
183
+ }, "strip", z.ZodTypeAny, {
184
+ north: number;
185
+ south: number;
186
+ east: number;
187
+ west: number;
188
+ }, {
189
+ north: number;
190
+ south: number;
191
+ east: number;
192
+ west: number;
193
+ }>>;
165
194
  }, "strip", z.ZodTypeAny, {
166
195
  source: string;
167
196
  fieldId: string;
@@ -179,6 +208,16 @@ export declare const monitoringVisualizationRouter: {
179
208
  label: string;
180
209
  color: string;
181
210
  }[];
211
+ cloudCoverage?: number | undefined;
212
+ requestedDate?: string | undefined;
213
+ daysOffset?: number | undefined;
214
+ isNearestMatch?: boolean | undefined;
215
+ bounds?: {
216
+ north: number;
217
+ south: number;
218
+ east: number;
219
+ west: number;
220
+ } | undefined;
182
221
  }, {
183
222
  source: string;
184
223
  fieldId: string;
@@ -196,6 +235,16 @@ export declare const monitoringVisualizationRouter: {
196
235
  label: string;
197
236
  color: string;
198
237
  }[];
238
+ cloudCoverage?: number | undefined;
239
+ requestedDate?: string | undefined;
240
+ daysOffset?: number | undefined;
241
+ isNearestMatch?: boolean | undefined;
242
+ bounds?: {
243
+ north: number;
244
+ south: number;
245
+ east: number;
246
+ west: number;
247
+ } | undefined;
199
248
  }>;
200
249
  404: z.ZodObject<{
201
250
  message: z.ZodString;
@@ -374,16 +423,16 @@ export declare const monitoringVisualizationRouter: {
374
423
  cloudCoverage: z.ZodNumber;
375
424
  imageCoverage: z.ZodNumber;
376
425
  available: z.ZodBoolean;
377
- source: z.ZodEnum<["sentinel-2", "landsat-8", "modis"]>;
426
+ source: z.ZodEnum<["sentinel-2", "landsat-8", "modis", "openweather-agro"]>;
378
427
  }, "strip", z.ZodTypeAny, {
379
428
  date: string;
380
- source: "sentinel-2" | "landsat-8" | "modis";
429
+ source: "sentinel-2" | "landsat-8" | "modis" | "openweather-agro";
381
430
  cloudCoverage: number;
382
431
  imageCoverage: number;
383
432
  available: boolean;
384
433
  }, {
385
434
  date: string;
386
- source: "sentinel-2" | "landsat-8" | "modis";
435
+ source: "sentinel-2" | "landsat-8" | "modis" | "openweather-agro";
387
436
  cloudCoverage: number;
388
437
  imageCoverage: number;
389
438
  available: boolean;
@@ -403,7 +452,7 @@ export declare const monitoringVisualizationRouter: {
403
452
  fieldId: string;
404
453
  dates: {
405
454
  date: string;
406
- source: "sentinel-2" | "landsat-8" | "modis";
455
+ source: "sentinel-2" | "landsat-8" | "modis" | "openweather-agro";
407
456
  cloudCoverage: number;
408
457
  imageCoverage: number;
409
458
  available: boolean;
@@ -417,7 +466,100 @@ export declare const monitoringVisualizationRouter: {
417
466
  fieldId: string;
418
467
  dates: {
419
468
  date: string;
420
- source: "sentinel-2" | "landsat-8" | "modis";
469
+ source: "sentinel-2" | "landsat-8" | "modis" | "openweather-agro";
470
+ cloudCoverage: number;
471
+ imageCoverage: number;
472
+ available: boolean;
473
+ }[];
474
+ totalAvailable: number;
475
+ dateRange: {
476
+ start: string;
477
+ end: string;
478
+ };
479
+ }>;
480
+ 404: z.ZodObject<{
481
+ message: z.ZodString;
482
+ code: z.ZodString;
483
+ }, "strip", z.ZodTypeAny, {
484
+ code: string;
485
+ message: string;
486
+ }, {
487
+ code: string;
488
+ message: string;
489
+ }>;
490
+ };
491
+ };
492
+ getFarmAvailableDates: {
493
+ query: z.ZodObject<{
494
+ startDate: z.ZodEffects<z.ZodString, string, string>;
495
+ endDate: z.ZodEffects<z.ZodString, string, string>;
496
+ maxCloudCoverage: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, number, string>, z.ZodNumber>>;
497
+ }, "strip", z.ZodTypeAny, {
498
+ startDate: string;
499
+ endDate: string;
500
+ maxCloudCoverage: number;
501
+ }, {
502
+ startDate: string;
503
+ endDate: string;
504
+ maxCloudCoverage?: string | undefined;
505
+ }>;
506
+ summary: "Get available satellite imagery dates for entire farm";
507
+ method: "GET";
508
+ path: "/farms/:farmId/visualization/imagery/available-dates";
509
+ responses: {
510
+ 200: z.ZodObject<{
511
+ farmId: z.ZodString;
512
+ dates: z.ZodArray<z.ZodObject<{
513
+ date: z.ZodString;
514
+ cloudCoverage: z.ZodNumber;
515
+ imageCoverage: z.ZodNumber;
516
+ available: z.ZodBoolean;
517
+ source: z.ZodEnum<["sentinel-2", "landsat-8", "modis", "openweather-agro"]>;
518
+ }, "strip", z.ZodTypeAny, {
519
+ date: string;
520
+ source: "sentinel-2" | "landsat-8" | "modis" | "openweather-agro";
521
+ cloudCoverage: number;
522
+ imageCoverage: number;
523
+ available: boolean;
524
+ }, {
525
+ date: string;
526
+ source: "sentinel-2" | "landsat-8" | "modis" | "openweather-agro";
527
+ cloudCoverage: number;
528
+ imageCoverage: number;
529
+ available: boolean;
530
+ }>, "many">;
531
+ totalAvailable: z.ZodNumber;
532
+ dateRange: z.ZodObject<{
533
+ start: z.ZodString;
534
+ end: z.ZodString;
535
+ }, "strip", z.ZodTypeAny, {
536
+ start: string;
537
+ end: string;
538
+ }, {
539
+ start: string;
540
+ end: string;
541
+ }>;
542
+ monitoredFieldCount: z.ZodNumber;
543
+ }, "strip", z.ZodTypeAny, {
544
+ farmId: string;
545
+ dates: {
546
+ date: string;
547
+ source: "sentinel-2" | "landsat-8" | "modis" | "openweather-agro";
548
+ cloudCoverage: number;
549
+ imageCoverage: number;
550
+ available: boolean;
551
+ }[];
552
+ totalAvailable: number;
553
+ dateRange: {
554
+ start: string;
555
+ end: string;
556
+ };
557
+ monitoredFieldCount: number;
558
+ }, {
559
+ farmId: string;
560
+ dates: {
561
+ date: string;
562
+ source: "sentinel-2" | "landsat-8" | "modis" | "openweather-agro";
421
563
  cloudCoverage: number;
422
564
  imageCoverage: number;
423
565
  available: boolean;
@@ -427,6 +569,7 @@ export declare const monitoringVisualizationRouter: {
427
569
  start: string;
428
570
  end: string;
429
571
  };
572
+ monitoredFieldCount: number;
430
573
  }>;
431
574
  404: z.ZodObject<{
432
575
  message: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"monitoring-visualization.routes.d.ts","sourceRoot":"","sources":["../../src/routes/monitoring-visualization.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsExB,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiiBxC,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,OAAO,6BAA6B,CAAC"}
1
+ {"version":3,"file":"monitoring-visualization.routes.d.ts","sourceRoot":"","sources":["../../src/routes/monitoring-visualization.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwExB,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgjBxC,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,OAAO,6BAA6B,CAAC"}
@@ -4,7 +4,7 @@ import {
4
4
  // Phase 1 schemas
5
5
  satelliteImageryQuerySchema, satelliteImageryResponseSchema, ndviHeatmapQuerySchema, ndviHeatmapResponseSchema, soilMoistureHeatmapQuerySchema, soilMoistureHeatmapResponseSchema,
6
6
  // Phase 2 schemas
7
- availableDatesQuerySchema, availableDatesResponseSchema, historicalImageryQuerySchema, historicalImageryResponseSchema, compareImageryQuerySchema, compareImageryResponseSchema, timelapseRequestSchema, timelapseResponseSchema,
7
+ availableDatesQuerySchema, availableDatesResponseSchema, farmAvailableDatesQuerySchema, farmAvailableDatesResponseSchema, historicalImageryQuerySchema, historicalImageryResponseSchema, compareImageryQuerySchema, compareImageryResponseSchema, timelapseRequestSchema, timelapseResponseSchema,
8
8
  // Phase 3 schemas
9
9
  zoneAnalysisQuerySchema, zoneAnalysisResponseSchema, anomalyQuerySchema, anomalyDetectionResponseSchema, weatherSpatialQuerySchema, weatherSpatialResponseSchema, sensorsResponseSchema, createSensorSchema, sensorSchema, sensorReadingHistorySchema,
10
10
  // Phase 4 schemas
@@ -86,6 +86,20 @@ export const monitoringVisualizationRouter = c.router({
86
86
  },
87
87
  summary: 'Get available satellite imagery dates',
88
88
  },
89
+ /**
90
+ * Get available imagery dates across all monitored fields on a farm
91
+ * Returns union of dates for dashboard date scrubber
92
+ */
93
+ getFarmAvailableDates: {
94
+ method: 'GET',
95
+ path: '/farms/:farmId/visualization/imagery/available-dates',
96
+ query: farmAvailableDatesQuerySchema,
97
+ responses: {
98
+ 200: farmAvailableDatesResponseSchema,
99
+ 404: visualizationErrorSchema,
100
+ },
101
+ summary: 'Get available satellite imagery dates for entire farm',
102
+ },
89
103
  /**
90
104
  * Get historical imagery for a specific date
91
105
  * Returns true-color and/or NDVI imagery for the date