@deepintel-ltd/farmpro-contracts 1.16.5 → 1.16.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/routes/field-monitoring.routes.d.ts +22 -0
- package/dist/routes/field-monitoring.routes.d.ts.map +1 -1
- package/dist/routes/field-monitoring.routes.js +2 -1
- package/dist/routes/field-observations.routes.d.ts +42 -16
- package/dist/routes/field-observations.routes.d.ts.map +1 -1
- package/dist/routes/monitoring-visualization.routes.d.ts +24 -2
- package/dist/routes/monitoring-visualization.routes.d.ts.map +1 -1
- package/dist/routes/monitoring-visualization.routes.js +8 -0
- package/dist/schemas/field-monitoring.schemas.d.ts +24 -0
- package/dist/schemas/field-monitoring.schemas.d.ts.map +1 -1
- package/dist/schemas/field-monitoring.schemas.js +9 -0
- package/dist/schemas/field-observations.schemas.d.ts +34 -8
- package/dist/schemas/field-observations.schemas.d.ts.map +1 -1
- package/dist/schemas/field-observations.schemas.js +39 -40
- package/dist/schemas/monitoring-visualization.schemas.d.ts +2 -2
- package/package.json +1 -1
|
@@ -3315,6 +3315,28 @@ export declare const fieldMonitoringRouter: {
|
|
|
3315
3315
|
} | undefined;
|
|
3316
3316
|
};
|
|
3317
3317
|
}>;
|
|
3318
|
+
202: z.ZodObject<{
|
|
3319
|
+
status: z.ZodLiteral<"building">;
|
|
3320
|
+
kind: z.ZodEnum<["terrain", "soil"]>;
|
|
3321
|
+
jobId: z.ZodString;
|
|
3322
|
+
cacheKey: z.ZodString;
|
|
3323
|
+
fieldId: z.ZodString;
|
|
3324
|
+
farmId: z.ZodOptional<z.ZodString>;
|
|
3325
|
+
}, "strip", z.ZodTypeAny, {
|
|
3326
|
+
status: "building";
|
|
3327
|
+
fieldId: string;
|
|
3328
|
+
jobId: string;
|
|
3329
|
+
kind: "terrain" | "soil";
|
|
3330
|
+
cacheKey: string;
|
|
3331
|
+
farmId?: string | undefined;
|
|
3332
|
+
}, {
|
|
3333
|
+
status: "building";
|
|
3334
|
+
fieldId: string;
|
|
3335
|
+
jobId: string;
|
|
3336
|
+
kind: "terrain" | "soil";
|
|
3337
|
+
cacheKey: string;
|
|
3338
|
+
farmId?: string | undefined;
|
|
3339
|
+
}>;
|
|
3318
3340
|
404: z.ZodObject<{
|
|
3319
3341
|
message: z.ZodString;
|
|
3320
3342
|
code: z.ZodOptional<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-monitoring.routes.d.ts","sourceRoot":"","sources":["../../src/routes/field-monitoring.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"field-monitoring.routes.d.ts","sourceRoot":"","sources":["../../src/routes/field-monitoring.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwBxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+PhC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { initContract } from '@ts-rest/core';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { fieldMonitoringSummarySchema, ndviTrendDataPointSchema, weeklyNDVIStatsSchema, fieldAlertSchema, fieldAlertListResponseSchema, fieldComparisonSchema, farmMonitoringStatsSchema, ndviTrendQuerySchema, alertsQuerySchema, triggerAnalysisResponseSchema, fieldMonitoringErrorResponseSchema, bulkReadAlertsBodySchema, bulkReadAlertsResponseSchema, soilReadingSchema, soilTrendSchema, historicalNDVIDataPointSchema, intelligentSoilProfileSchema, } from '../schemas/field-monitoring.schemas';
|
|
3
|
+
import { fieldMonitoringSummarySchema, ndviTrendDataPointSchema, weeklyNDVIStatsSchema, fieldAlertSchema, fieldAlertListResponseSchema, fieldComparisonSchema, farmMonitoringStatsSchema, ndviTrendQuerySchema, alertsQuerySchema, triggerAnalysisResponseSchema, fieldMonitoringErrorResponseSchema, bulkReadAlertsBodySchema, bulkReadAlertsResponseSchema, soilReadingSchema, soilTrendSchema, historicalNDVIDataPointSchema, intelligentSoilProfileSchema, monitoringCacheBuildingResponseSchema, } from '../schemas/field-monitoring.schemas';
|
|
4
4
|
const c = initContract();
|
|
5
5
|
export const fieldMonitoringRouter = c.router({
|
|
6
6
|
// Get current monitoring status for a field
|
|
@@ -234,6 +234,7 @@ export const fieldMonitoringRouter = c.router({
|
|
|
234
234
|
}),
|
|
235
235
|
responses: {
|
|
236
236
|
200: intelligentSoilProfileSchema,
|
|
237
|
+
202: monitoringCacheBuildingResponseSchema,
|
|
237
238
|
404: fieldMonitoringErrorResponseSchema,
|
|
238
239
|
400: fieldMonitoringErrorResponseSchema,
|
|
239
240
|
},
|
|
@@ -4,7 +4,7 @@ export declare const fieldObservationsRouter: {
|
|
|
4
4
|
summary: "Upload farm observation photo for AI analysis";
|
|
5
5
|
method: "POST";
|
|
6
6
|
contentType: "multipart/form-data";
|
|
7
|
-
body: z.ZodObject<{
|
|
7
|
+
body: z.ZodObject<Omit<{
|
|
8
8
|
fieldId: z.ZodOptional<z.ZodString>;
|
|
9
9
|
observationType: z.ZodEnum<["disease", "pest", "nutrient", "weed", "general", "health_check"]>;
|
|
10
10
|
userNotes: z.ZodOptional<z.ZodString>;
|
|
@@ -23,8 +23,25 @@ export declare const fieldObservationsRouter: {
|
|
|
23
23
|
accuracy?: number | undefined;
|
|
24
24
|
}>>;
|
|
25
25
|
capturedAt: z.ZodOptional<z.ZodString>;
|
|
26
|
-
} & {
|
|
27
|
-
photo: z.ZodAny
|
|
26
|
+
}, "location"> & {
|
|
27
|
+
photo: z.ZodOptional<z.ZodAny>;
|
|
28
|
+
location: z.ZodEffects<z.ZodOptional<z.ZodObject<{
|
|
29
|
+
lat: z.ZodNumber;
|
|
30
|
+
lng: z.ZodNumber;
|
|
31
|
+
accuracy: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
|
33
|
+
lat: number;
|
|
34
|
+
lng: number;
|
|
35
|
+
accuracy?: number | undefined;
|
|
36
|
+
}, {
|
|
37
|
+
lat: number;
|
|
38
|
+
lng: number;
|
|
39
|
+
accuracy?: number | undefined;
|
|
40
|
+
}>>, {
|
|
41
|
+
lat: number;
|
|
42
|
+
lng: number;
|
|
43
|
+
accuracy?: number | undefined;
|
|
44
|
+
} | undefined, unknown>;
|
|
28
45
|
}, "strip", z.ZodTypeAny, {
|
|
29
46
|
observationType: "general" | "disease" | "pest" | "nutrient" | "weed" | "health_check";
|
|
30
47
|
location?: {
|
|
@@ -39,11 +56,7 @@ export declare const fieldObservationsRouter: {
|
|
|
39
56
|
photo?: any;
|
|
40
57
|
}, {
|
|
41
58
|
observationType: "general" | "disease" | "pest" | "nutrient" | "weed" | "health_check";
|
|
42
|
-
location?:
|
|
43
|
-
lat: number;
|
|
44
|
-
lng: number;
|
|
45
|
-
accuracy?: number | undefined;
|
|
46
|
-
} | undefined;
|
|
59
|
+
location?: unknown;
|
|
47
60
|
fieldId?: string | undefined;
|
|
48
61
|
capturedAt?: string | undefined;
|
|
49
62
|
userNotes?: string | undefined;
|
|
@@ -164,7 +177,7 @@ export declare const fieldObservationsRouter: {
|
|
|
164
177
|
summary: "Upload field observation photo for AI analysis";
|
|
165
178
|
method: "POST";
|
|
166
179
|
contentType: "multipart/form-data";
|
|
167
|
-
body: z.ZodObject<{
|
|
180
|
+
body: z.ZodObject<Omit<{
|
|
168
181
|
fieldId: z.ZodOptional<z.ZodString>;
|
|
169
182
|
observationType: z.ZodEnum<["disease", "pest", "nutrient", "weed", "general", "health_check"]>;
|
|
170
183
|
userNotes: z.ZodOptional<z.ZodString>;
|
|
@@ -183,8 +196,25 @@ export declare const fieldObservationsRouter: {
|
|
|
183
196
|
accuracy?: number | undefined;
|
|
184
197
|
}>>;
|
|
185
198
|
capturedAt: z.ZodOptional<z.ZodString>;
|
|
186
|
-
} & {
|
|
187
|
-
photo: z.ZodAny
|
|
199
|
+
}, "location"> & {
|
|
200
|
+
photo: z.ZodOptional<z.ZodAny>;
|
|
201
|
+
location: z.ZodEffects<z.ZodOptional<z.ZodObject<{
|
|
202
|
+
lat: z.ZodNumber;
|
|
203
|
+
lng: z.ZodNumber;
|
|
204
|
+
accuracy: z.ZodOptional<z.ZodNumber>;
|
|
205
|
+
}, "strip", z.ZodTypeAny, {
|
|
206
|
+
lat: number;
|
|
207
|
+
lng: number;
|
|
208
|
+
accuracy?: number | undefined;
|
|
209
|
+
}, {
|
|
210
|
+
lat: number;
|
|
211
|
+
lng: number;
|
|
212
|
+
accuracy?: number | undefined;
|
|
213
|
+
}>>, {
|
|
214
|
+
lat: number;
|
|
215
|
+
lng: number;
|
|
216
|
+
accuracy?: number | undefined;
|
|
217
|
+
} | undefined, unknown>;
|
|
188
218
|
}, "strip", z.ZodTypeAny, {
|
|
189
219
|
observationType: "general" | "disease" | "pest" | "nutrient" | "weed" | "health_check";
|
|
190
220
|
location?: {
|
|
@@ -199,11 +229,7 @@ export declare const fieldObservationsRouter: {
|
|
|
199
229
|
photo?: any;
|
|
200
230
|
}, {
|
|
201
231
|
observationType: "general" | "disease" | "pest" | "nutrient" | "weed" | "health_check";
|
|
202
|
-
location?:
|
|
203
|
-
lat: number;
|
|
204
|
-
lng: number;
|
|
205
|
-
accuracy?: number | undefined;
|
|
206
|
-
} | undefined;
|
|
232
|
+
location?: unknown;
|
|
207
233
|
fieldId?: string | undefined;
|
|
208
234
|
capturedAt?: string | undefined;
|
|
209
235
|
userNotes?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-observations.routes.d.ts","sourceRoot":"","sources":["../../src/routes/field-observations.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"field-observations.routes.d.ts","sourceRoot":"","sources":["../../src/routes/field-observations.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsHlC,CAAC"}
|
|
@@ -3031,10 +3031,10 @@ export declare const monitoringVisualizationRouter: {
|
|
|
3031
3031
|
palette: z.ZodDefault<z.ZodEnum<["terrain", "viridis", "grayscale", "rainbow"]>>;
|
|
3032
3032
|
}, "strip", z.ZodTypeAny, {
|
|
3033
3033
|
resolution: "low" | "medium" | "high";
|
|
3034
|
-
palette: "
|
|
3034
|
+
palette: "terrain" | "viridis" | "grayscale" | "rainbow";
|
|
3035
3035
|
}, {
|
|
3036
3036
|
resolution?: "low" | "medium" | "high" | undefined;
|
|
3037
|
-
palette?: "
|
|
3037
|
+
palette?: "terrain" | "viridis" | "grayscale" | "rainbow" | undefined;
|
|
3038
3038
|
}>;
|
|
3039
3039
|
summary: "Get elevation heatmap for field";
|
|
3040
3040
|
method: "GET";
|
|
@@ -4012,6 +4012,28 @@ export declare const monitoringVisualizationRouter: {
|
|
|
4012
4012
|
farmId?: string | undefined;
|
|
4013
4013
|
interpolated?: boolean | undefined;
|
|
4014
4014
|
}>;
|
|
4015
|
+
202: z.ZodObject<{
|
|
4016
|
+
status: z.ZodLiteral<"building">;
|
|
4017
|
+
kind: z.ZodLiteral<"terrain">;
|
|
4018
|
+
jobId: z.ZodString;
|
|
4019
|
+
cacheKey: z.ZodString;
|
|
4020
|
+
fieldId: z.ZodString;
|
|
4021
|
+
farmId: z.ZodOptional<z.ZodString>;
|
|
4022
|
+
}, "strip", z.ZodTypeAny, {
|
|
4023
|
+
status: "building";
|
|
4024
|
+
fieldId: string;
|
|
4025
|
+
jobId: string;
|
|
4026
|
+
kind: "terrain";
|
|
4027
|
+
cacheKey: string;
|
|
4028
|
+
farmId?: string | undefined;
|
|
4029
|
+
}, {
|
|
4030
|
+
status: "building";
|
|
4031
|
+
fieldId: string;
|
|
4032
|
+
jobId: string;
|
|
4033
|
+
kind: "terrain";
|
|
4034
|
+
cacheKey: string;
|
|
4035
|
+
farmId?: string | undefined;
|
|
4036
|
+
}>;
|
|
4015
4037
|
404: z.ZodObject<{
|
|
4016
4038
|
message: z.ZodString;
|
|
4017
4039
|
code: 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
|
|
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"}
|
|
@@ -428,6 +428,14 @@ export const monitoringVisualizationRouter = c.router({
|
|
|
428
428
|
query: terrainQuerySchema,
|
|
429
429
|
responses: {
|
|
430
430
|
200: fieldTerrainProfileResponseSchema,
|
|
431
|
+
202: z.object({
|
|
432
|
+
status: z.literal('building'),
|
|
433
|
+
kind: z.literal('terrain'),
|
|
434
|
+
jobId: z.string(),
|
|
435
|
+
cacheKey: z.string(),
|
|
436
|
+
fieldId: z.string().uuid(),
|
|
437
|
+
farmId: z.string().uuid().optional(),
|
|
438
|
+
}),
|
|
431
439
|
404: visualizationErrorSchema,
|
|
432
440
|
503: visualizationErrorSchema,
|
|
433
441
|
},
|
|
@@ -941,6 +941,30 @@ export declare const fieldMonitoringErrorResponseSchema: z.ZodObject<{
|
|
|
941
941
|
message: string;
|
|
942
942
|
code?: string | undefined;
|
|
943
943
|
}>;
|
|
944
|
+
/** Returned when terrain/soil cold-path builds are enqueued off the HTTP request. */
|
|
945
|
+
export declare const monitoringCacheBuildingResponseSchema: z.ZodObject<{
|
|
946
|
+
status: z.ZodLiteral<"building">;
|
|
947
|
+
kind: z.ZodEnum<["terrain", "soil"]>;
|
|
948
|
+
jobId: z.ZodString;
|
|
949
|
+
cacheKey: z.ZodString;
|
|
950
|
+
fieldId: z.ZodString;
|
|
951
|
+
farmId: z.ZodOptional<z.ZodString>;
|
|
952
|
+
}, "strip", z.ZodTypeAny, {
|
|
953
|
+
status: "building";
|
|
954
|
+
fieldId: string;
|
|
955
|
+
jobId: string;
|
|
956
|
+
kind: "terrain" | "soil";
|
|
957
|
+
cacheKey: string;
|
|
958
|
+
farmId?: string | undefined;
|
|
959
|
+
}, {
|
|
960
|
+
status: "building";
|
|
961
|
+
fieldId: string;
|
|
962
|
+
jobId: string;
|
|
963
|
+
kind: "terrain" | "soil";
|
|
964
|
+
cacheKey: string;
|
|
965
|
+
farmId?: string | undefined;
|
|
966
|
+
}>;
|
|
967
|
+
export type MonitoringCacheBuildingResponse = z.infer<typeof monitoringCacheBuildingResponseSchema>;
|
|
944
968
|
export declare const soilReadingSchema: z.ZodObject<{
|
|
945
969
|
readingDate: z.ZodString;
|
|
946
970
|
soilMoisture: z.ZodNullable<z.ZodNumber>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-monitoring.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/field-monitoring.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AAGF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAG1E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAGpE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAS3B,sEAAsE;;IAEtE,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWvD,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;EAMhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAGpE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;EAOpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAG5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;EAE5B,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAnDvC,sEAAsE;;QAEtE,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDvD,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,wBAAwB;;;;;;EAEnC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA9DvC,sEAAsE;;QAEtE,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DvD,CAAC;AAGH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;EAIxC,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;EAG7C,CAAC;
|
|
1
|
+
{"version":3,"file":"field-monitoring.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/field-monitoring.schemas.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+FvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
|
|
@@ -107,6 +107,15 @@ export const fieldMonitoringErrorResponseSchema = z.object({
|
|
|
107
107
|
message: z.string(),
|
|
108
108
|
code: z.string().optional(),
|
|
109
109
|
});
|
|
110
|
+
/** Returned when terrain/soil cold-path builds are enqueued off the HTTP request. */
|
|
111
|
+
export const monitoringCacheBuildingResponseSchema = z.object({
|
|
112
|
+
status: z.literal('building'),
|
|
113
|
+
kind: z.enum(['terrain', 'soil']),
|
|
114
|
+
jobId: z.string(),
|
|
115
|
+
cacheKey: z.string(),
|
|
116
|
+
fieldId: z.string().uuid(),
|
|
117
|
+
farmId: z.string().uuid().optional(),
|
|
118
|
+
});
|
|
110
119
|
// Soil Monitoring Schemas
|
|
111
120
|
export const soilReadingSchema = z.object({
|
|
112
121
|
readingDate: z.string().datetime(),
|
|
@@ -393,6 +393,19 @@ export declare const observationAttributesSchema: z.ZodObject<{
|
|
|
393
393
|
modelVersion: string | null;
|
|
394
394
|
phase: string | null;
|
|
395
395
|
}>;
|
|
396
|
+
export declare const observationLocationInputSchema: z.ZodObject<{
|
|
397
|
+
lat: z.ZodNumber;
|
|
398
|
+
lng: z.ZodNumber;
|
|
399
|
+
accuracy: z.ZodOptional<z.ZodNumber>;
|
|
400
|
+
}, "strip", z.ZodTypeAny, {
|
|
401
|
+
lat: number;
|
|
402
|
+
lng: number;
|
|
403
|
+
accuracy?: number | undefined;
|
|
404
|
+
}, {
|
|
405
|
+
lat: number;
|
|
406
|
+
lng: number;
|
|
407
|
+
accuracy?: number | undefined;
|
|
408
|
+
}>;
|
|
396
409
|
export declare const createObservationAttributesSchema: z.ZodObject<{
|
|
397
410
|
fieldId: z.ZodOptional<z.ZodString>;
|
|
398
411
|
observationType: z.ZodEnum<["disease", "pest", "nutrient", "weed", "general", "health_check"]>;
|
|
@@ -1111,7 +1124,7 @@ export declare const createObservationInputSchema: z.ZodObject<{
|
|
|
1111
1124
|
links?: Record<string, string> | undefined;
|
|
1112
1125
|
meta?: Record<string, unknown> | undefined;
|
|
1113
1126
|
}>;
|
|
1114
|
-
export declare const uploadObservationBodySchema: z.ZodObject<{
|
|
1127
|
+
export declare const uploadObservationBodySchema: z.ZodObject<Omit<{
|
|
1115
1128
|
fieldId: z.ZodOptional<z.ZodString>;
|
|
1116
1129
|
observationType: z.ZodEnum<["disease", "pest", "nutrient", "weed", "general", "health_check"]>;
|
|
1117
1130
|
userNotes: z.ZodOptional<z.ZodString>;
|
|
@@ -1130,8 +1143,25 @@ export declare const uploadObservationBodySchema: z.ZodObject<{
|
|
|
1130
1143
|
accuracy?: number | undefined;
|
|
1131
1144
|
}>>;
|
|
1132
1145
|
capturedAt: z.ZodOptional<z.ZodString>;
|
|
1133
|
-
} & {
|
|
1134
|
-
photo: z.ZodAny
|
|
1146
|
+
}, "location"> & {
|
|
1147
|
+
photo: z.ZodOptional<z.ZodAny>;
|
|
1148
|
+
location: z.ZodEffects<z.ZodOptional<z.ZodObject<{
|
|
1149
|
+
lat: z.ZodNumber;
|
|
1150
|
+
lng: z.ZodNumber;
|
|
1151
|
+
accuracy: z.ZodOptional<z.ZodNumber>;
|
|
1152
|
+
}, "strip", z.ZodTypeAny, {
|
|
1153
|
+
lat: number;
|
|
1154
|
+
lng: number;
|
|
1155
|
+
accuracy?: number | undefined;
|
|
1156
|
+
}, {
|
|
1157
|
+
lat: number;
|
|
1158
|
+
lng: number;
|
|
1159
|
+
accuracy?: number | undefined;
|
|
1160
|
+
}>>, {
|
|
1161
|
+
lat: number;
|
|
1162
|
+
lng: number;
|
|
1163
|
+
accuracy?: number | undefined;
|
|
1164
|
+
} | undefined, unknown>;
|
|
1135
1165
|
}, "strip", z.ZodTypeAny, {
|
|
1136
1166
|
observationType: "general" | "disease" | "pest" | "nutrient" | "weed" | "health_check";
|
|
1137
1167
|
location?: {
|
|
@@ -1146,11 +1176,7 @@ export declare const uploadObservationBodySchema: z.ZodObject<{
|
|
|
1146
1176
|
photo?: any;
|
|
1147
1177
|
}, {
|
|
1148
1178
|
observationType: "general" | "disease" | "pest" | "nutrient" | "weed" | "health_check";
|
|
1149
|
-
location?:
|
|
1150
|
-
lat: number;
|
|
1151
|
-
lng: number;
|
|
1152
|
-
accuracy?: number | undefined;
|
|
1153
|
-
} | undefined;
|
|
1179
|
+
location?: unknown;
|
|
1154
1180
|
fieldId?: string | undefined;
|
|
1155
1181
|
capturedAt?: string | undefined;
|
|
1156
1182
|
userNotes?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-observations.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/field-observations.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB;;GAEG;AAGH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"field-observations.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/field-observations.schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,8 @@ import { recommendationSchema } from './recommendations.schemas';
|
|
|
5
5
|
* Field Observation schemas - JSON:API compliant
|
|
6
6
|
*/
|
|
7
7
|
// Observation attributes schema
|
|
8
|
-
export const observationAttributesSchema = z
|
|
8
|
+
export const observationAttributesSchema = z
|
|
9
|
+
.object({
|
|
9
10
|
fieldId: z.string().uuid().nullable(),
|
|
10
11
|
farmId: z.string().uuid(),
|
|
11
12
|
uploadedBy: z.string().uuid(),
|
|
@@ -19,14 +20,7 @@ export const observationAttributesSchema = z.object({
|
|
|
19
20
|
})
|
|
20
21
|
.nullable(),
|
|
21
22
|
capturedAt: z.date(),
|
|
22
|
-
observationType: z.enum([
|
|
23
|
-
'disease',
|
|
24
|
-
'pest',
|
|
25
|
-
'nutrient',
|
|
26
|
-
'weed',
|
|
27
|
-
'general',
|
|
28
|
-
'health_check',
|
|
29
|
-
]),
|
|
23
|
+
observationType: z.enum(['disease', 'pest', 'nutrient', 'weed', 'general', 'health_check']),
|
|
30
24
|
userNotes: z.string().nullable(),
|
|
31
25
|
cropStageAtTime: z
|
|
32
26
|
.enum([
|
|
@@ -46,9 +40,7 @@ export const observationAttributesSchema = z.object({
|
|
|
46
40
|
diagnosisType: z.string().nullable(),
|
|
47
41
|
diagnosisConfidence: z.number().min(0).max(1).nullable(),
|
|
48
42
|
severity: z.enum(['low', 'medium', 'high', 'critical']).nullable(),
|
|
49
|
-
affectedArea: z
|
|
50
|
-
.enum(['localized', 'widespread', 'entire_field'])
|
|
51
|
-
.nullable(),
|
|
43
|
+
affectedArea: z.enum(['localized', 'widespread', 'entire_field']).nullable(),
|
|
52
44
|
healthScore: z.number().min(0).max(100).nullable(),
|
|
53
45
|
analysisDetails: z
|
|
54
46
|
.object({
|
|
@@ -94,37 +86,23 @@ export const observationAttributesSchema = z.object({
|
|
|
94
86
|
processingTime: z.number().nullable(),
|
|
95
87
|
modelVersion: z.string().nullable(),
|
|
96
88
|
phase: z.string().nullable(),
|
|
97
|
-
})
|
|
89
|
+
})
|
|
90
|
+
.merge(timestampsSchema);
|
|
91
|
+
export const observationLocationInputSchema = z.object({
|
|
92
|
+
lat: z.number().min(-90).max(90),
|
|
93
|
+
lng: z.number().min(-180).max(180),
|
|
94
|
+
// Geolocation accuracy is non-negative; Android reports 0 when unknown.
|
|
95
|
+
accuracy: z.number().nonnegative().optional(),
|
|
96
|
+
});
|
|
98
97
|
// Observation attributes for creation (input)
|
|
99
98
|
export const createObservationAttributesSchema = z.object({
|
|
100
99
|
fieldId: z.string().uuid().optional(),
|
|
101
|
-
observationType: z.enum([
|
|
102
|
-
'disease',
|
|
103
|
-
'pest',
|
|
104
|
-
'nutrient',
|
|
105
|
-
'weed',
|
|
106
|
-
'general',
|
|
107
|
-
'health_check',
|
|
108
|
-
]),
|
|
100
|
+
observationType: z.enum(['disease', 'pest', 'nutrient', 'weed', 'general', 'health_check']),
|
|
109
101
|
userNotes: z.string().max(1000).optional(),
|
|
110
102
|
cropStageAtTime: z
|
|
111
|
-
.enum([
|
|
112
|
-
'planted',
|
|
113
|
-
'germination',
|
|
114
|
-
'vegetative',
|
|
115
|
-
'flowering',
|
|
116
|
-
'fruiting',
|
|
117
|
-
'mature',
|
|
118
|
-
'harvested',
|
|
119
|
-
])
|
|
120
|
-
.optional(),
|
|
121
|
-
location: z
|
|
122
|
-
.object({
|
|
123
|
-
lat: z.number().min(-90).max(90),
|
|
124
|
-
lng: z.number().min(-180).max(180),
|
|
125
|
-
accuracy: z.number().positive().optional(),
|
|
126
|
-
})
|
|
103
|
+
.enum(['planted', 'germination', 'vegetative', 'flowering', 'fruiting', 'mature', 'harvested'])
|
|
127
104
|
.optional(),
|
|
105
|
+
location: observationLocationInputSchema.optional(),
|
|
128
106
|
capturedAt: z.string().datetime().optional(),
|
|
129
107
|
});
|
|
130
108
|
// Observation attributes for update (input)
|
|
@@ -136,9 +114,30 @@ export const updateObservationActionAttributesSchema = z.object({
|
|
|
136
114
|
// JSON:API resource schemas
|
|
137
115
|
export const observationResourceSchema = createJsonApiResourceSchema('observations', observationAttributesSchema);
|
|
138
116
|
export const createObservationInputSchema = createJsonApiResourceSchema('observations', createObservationAttributesSchema);
|
|
139
|
-
export const uploadObservationBodySchema = createObservationAttributesSchema
|
|
140
|
-
|
|
141
|
-
|
|
117
|
+
export const uploadObservationBodySchema = createObservationAttributesSchema
|
|
118
|
+
.omit({ location: true })
|
|
119
|
+
.extend({
|
|
120
|
+
// Multer puts the file on req.file, not body.photo
|
|
121
|
+
photo: z.any().optional(),
|
|
122
|
+
// FormData JSON.stringifies objects; accept the string and parse it.
|
|
123
|
+
location: z.preprocess((value) => {
|
|
124
|
+
if (typeof value !== 'string')
|
|
125
|
+
return value;
|
|
126
|
+
const trimmed = value.trim();
|
|
127
|
+
if (!trimmed)
|
|
128
|
+
return undefined;
|
|
129
|
+
try {
|
|
130
|
+
const parsed = JSON.parse(trimmed);
|
|
131
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
return parsed;
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
}, observationLocationInputSchema.optional()),
|
|
140
|
+
});
|
|
142
141
|
export const updateObservationActionInputSchema = createJsonApiResourceSchema('observations', updateObservationActionAttributesSchema);
|
|
143
142
|
// Response schemas
|
|
144
143
|
export const observationResponseSchema = jsonApiSingleResponseSchema(observationResourceSchema);
|
|
@@ -3120,10 +3120,10 @@ export declare const elevationHeatmapQuerySchema: z.ZodObject<{
|
|
|
3120
3120
|
palette: z.ZodDefault<z.ZodEnum<["terrain", "viridis", "grayscale", "rainbow"]>>;
|
|
3121
3121
|
}, "strip", z.ZodTypeAny, {
|
|
3122
3122
|
resolution: "low" | "medium" | "high";
|
|
3123
|
-
palette: "
|
|
3123
|
+
palette: "terrain" | "viridis" | "grayscale" | "rainbow";
|
|
3124
3124
|
}, {
|
|
3125
3125
|
resolution?: "low" | "medium" | "high" | undefined;
|
|
3126
|
-
palette?: "
|
|
3126
|
+
palette?: "terrain" | "viridis" | "grayscale" | "rainbow" | undefined;
|
|
3127
3127
|
}>;
|
|
3128
3128
|
export declare const elevationHeatmapResponseSchema: z.ZodObject<{
|
|
3129
3129
|
fieldId: z.ZodString;
|