@deepintel-ltd/farmpro-contracts 1.1.0 → 1.2.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,405 @@
1
+ import { z } from 'zod';
2
+ export declare const fieldMonitoringRouter: {
3
+ getFieldStatus: {
4
+ summary: "Get current monitoring status for a field";
5
+ method: "GET";
6
+ path: "/farms/:farmId/fields/:fieldId/monitoring";
7
+ responses: {
8
+ 200: z.ZodObject<{
9
+ id: z.ZodString;
10
+ fieldId: z.ZodString;
11
+ fieldName: z.ZodString;
12
+ latestDate: z.ZodString;
13
+ currentNDVI: z.ZodNullable<z.ZodNumber>;
14
+ currentNDWI: z.ZodNullable<z.ZodNumber>;
15
+ currentEVI: z.ZodNullable<z.ZodNumber>;
16
+ currentCropHealth: z.ZodNullable<z.ZodEnum<["poor", "fair", "good", "excellent"]>>;
17
+ currentWaterStress: z.ZodNullable<z.ZodEnum<["none", "low", "medium", "high"]>>;
18
+ overallStatus: z.ZodEnum<["ok", "warning", "critical"]>;
19
+ activeAlertCount: z.ZodNumber;
20
+ lastAlertDate: z.ZodNullable<z.ZodString>;
21
+ dataQuality: z.ZodNullable<z.ZodEnum<["excellent", "good", "fair", "poor"]>>;
22
+ cloudCover: z.ZodNullable<z.ZodNumber>;
23
+ lastProcessedAt: z.ZodString;
24
+ }, "strip", z.ZodTypeAny, {
25
+ id: string;
26
+ fieldId: string;
27
+ fieldName: string;
28
+ latestDate: string;
29
+ currentNDVI: number | null;
30
+ currentNDWI: number | null;
31
+ currentEVI: number | null;
32
+ currentCropHealth: "poor" | "fair" | "good" | "excellent" | null;
33
+ currentWaterStress: "high" | "medium" | "low" | "none" | null;
34
+ overallStatus: "ok" | "critical" | "warning";
35
+ activeAlertCount: number;
36
+ lastAlertDate: string | null;
37
+ dataQuality: "poor" | "fair" | "good" | "excellent" | null;
38
+ cloudCover: number | null;
39
+ lastProcessedAt: string;
40
+ }, {
41
+ id: string;
42
+ fieldId: string;
43
+ fieldName: string;
44
+ latestDate: string;
45
+ currentNDVI: number | null;
46
+ currentNDWI: number | null;
47
+ currentEVI: number | null;
48
+ currentCropHealth: "poor" | "fair" | "good" | "excellent" | null;
49
+ currentWaterStress: "high" | "medium" | "low" | "none" | null;
50
+ overallStatus: "ok" | "critical" | "warning";
51
+ activeAlertCount: number;
52
+ lastAlertDate: string | null;
53
+ dataQuality: "poor" | "fair" | "good" | "excellent" | null;
54
+ cloudCover: number | null;
55
+ lastProcessedAt: string;
56
+ }>;
57
+ 404: z.ZodObject<{
58
+ message: z.ZodString;
59
+ code: z.ZodOptional<z.ZodString>;
60
+ }, "strip", z.ZodTypeAny, {
61
+ message: string;
62
+ code?: string | undefined;
63
+ }, {
64
+ message: string;
65
+ code?: string | undefined;
66
+ }>;
67
+ };
68
+ };
69
+ getNDVITrend: {
70
+ query: z.ZodObject<{
71
+ startDate: z.ZodString;
72
+ endDate: z.ZodString;
73
+ interval: z.ZodDefault<z.ZodEnum<["daily", "weekly"]>>;
74
+ }, "strip", z.ZodTypeAny, {
75
+ startDate: string;
76
+ endDate: string;
77
+ interval: "daily" | "weekly";
78
+ }, {
79
+ startDate: string;
80
+ endDate: string;
81
+ interval?: "daily" | "weekly" | undefined;
82
+ }>;
83
+ summary: "Get NDVI trend for date range";
84
+ method: "GET";
85
+ path: "/farms/:farmId/fields/:fieldId/monitoring/ndvi-trend";
86
+ responses: {
87
+ 200: z.ZodUnion<[z.ZodArray<z.ZodObject<{
88
+ time: z.ZodString;
89
+ ndvi: z.ZodNumber;
90
+ cloudCover: z.ZodNumber;
91
+ }, "strip", z.ZodTypeAny, {
92
+ time: string;
93
+ ndvi: number;
94
+ cloudCover: number;
95
+ }, {
96
+ time: string;
97
+ ndvi: number;
98
+ cloudCover: number;
99
+ }>, "many">, z.ZodArray<z.ZodObject<{
100
+ week: z.ZodString;
101
+ avgNdvi: z.ZodNumber;
102
+ maxNdvi: z.ZodNumber;
103
+ minNdvi: z.ZodNumber;
104
+ }, "strip", z.ZodTypeAny, {
105
+ week: string;
106
+ avgNdvi: number;
107
+ maxNdvi: number;
108
+ minNdvi: number;
109
+ }, {
110
+ week: string;
111
+ avgNdvi: number;
112
+ maxNdvi: number;
113
+ minNdvi: number;
114
+ }>, "many">]>;
115
+ 404: z.ZodObject<{
116
+ message: z.ZodString;
117
+ code: z.ZodOptional<z.ZodString>;
118
+ }, "strip", z.ZodTypeAny, {
119
+ message: string;
120
+ code?: string | undefined;
121
+ }, {
122
+ message: string;
123
+ code?: string | undefined;
124
+ }>;
125
+ };
126
+ };
127
+ getFieldAlerts: {
128
+ query: z.ZodObject<{
129
+ status: z.ZodOptional<z.ZodEnum<["active", "acknowledged", "resolved"]>>;
130
+ }, "strip", z.ZodTypeAny, {
131
+ status?: "active" | "acknowledged" | "resolved" | undefined;
132
+ }, {
133
+ status?: "active" | "acknowledged" | "resolved" | undefined;
134
+ }>;
135
+ summary: "Get alerts for a field";
136
+ method: "GET";
137
+ path: "/farms/:farmId/fields/:fieldId/monitoring/alerts";
138
+ responses: {
139
+ 200: z.ZodArray<z.ZodObject<{
140
+ id: z.ZodString;
141
+ fieldId: z.ZodString;
142
+ fieldName: z.ZodOptional<z.ZodString>;
143
+ type: z.ZodString;
144
+ severity: z.ZodEnum<["low", "medium", "high", "critical"]>;
145
+ title: z.ZodString;
146
+ message: z.ZodString;
147
+ recommendation: z.ZodNullable<z.ZodString>;
148
+ status: z.ZodEnum<["active", "acknowledged", "resolved"]>;
149
+ acknowledgedAt: z.ZodNullable<z.ZodString>;
150
+ acknowledgedBy: z.ZodNullable<z.ZodString>;
151
+ resolvedAt: z.ZodNullable<z.ZodString>;
152
+ confidence: z.ZodNullable<z.ZodNumber>;
153
+ generatedBy: z.ZodString;
154
+ createdAt: z.ZodString;
155
+ }, "strip", z.ZodTypeAny, {
156
+ type: string;
157
+ status: "active" | "acknowledged" | "resolved";
158
+ message: string;
159
+ id: string;
160
+ title: string;
161
+ createdAt: string;
162
+ fieldId: string;
163
+ severity: "critical" | "high" | "medium" | "low";
164
+ recommendation: string | null;
165
+ acknowledgedAt: string | null;
166
+ acknowledgedBy: string | null;
167
+ resolvedAt: string | null;
168
+ confidence: number | null;
169
+ generatedBy: string;
170
+ fieldName?: string | undefined;
171
+ }, {
172
+ type: string;
173
+ status: "active" | "acknowledged" | "resolved";
174
+ message: string;
175
+ id: string;
176
+ title: string;
177
+ createdAt: string;
178
+ fieldId: string;
179
+ severity: "critical" | "high" | "medium" | "low";
180
+ recommendation: string | null;
181
+ acknowledgedAt: string | null;
182
+ acknowledgedBy: string | null;
183
+ resolvedAt: string | null;
184
+ confidence: number | null;
185
+ generatedBy: string;
186
+ fieldName?: string | undefined;
187
+ }>, "many">;
188
+ };
189
+ };
190
+ getFarmAlerts: {
191
+ query: z.ZodObject<{
192
+ status: z.ZodOptional<z.ZodEnum<["active", "acknowledged", "resolved"]>>;
193
+ }, "strip", z.ZodTypeAny, {
194
+ status?: "active" | "acknowledged" | "resolved" | undefined;
195
+ }, {
196
+ status?: "active" | "acknowledged" | "resolved" | undefined;
197
+ }>;
198
+ summary: "Get all alerts for a farm";
199
+ method: "GET";
200
+ path: "/farms/:farmId/monitoring/alerts";
201
+ responses: {
202
+ 200: z.ZodArray<z.ZodObject<{
203
+ id: z.ZodString;
204
+ fieldId: z.ZodString;
205
+ fieldName: z.ZodOptional<z.ZodString>;
206
+ type: z.ZodString;
207
+ severity: z.ZodEnum<["low", "medium", "high", "critical"]>;
208
+ title: z.ZodString;
209
+ message: z.ZodString;
210
+ recommendation: z.ZodNullable<z.ZodString>;
211
+ status: z.ZodEnum<["active", "acknowledged", "resolved"]>;
212
+ acknowledgedAt: z.ZodNullable<z.ZodString>;
213
+ acknowledgedBy: z.ZodNullable<z.ZodString>;
214
+ resolvedAt: z.ZodNullable<z.ZodString>;
215
+ confidence: z.ZodNullable<z.ZodNumber>;
216
+ generatedBy: z.ZodString;
217
+ createdAt: z.ZodString;
218
+ }, "strip", z.ZodTypeAny, {
219
+ type: string;
220
+ status: "active" | "acknowledged" | "resolved";
221
+ message: string;
222
+ id: string;
223
+ title: string;
224
+ createdAt: string;
225
+ fieldId: string;
226
+ severity: "critical" | "high" | "medium" | "low";
227
+ recommendation: string | null;
228
+ acknowledgedAt: string | null;
229
+ acknowledgedBy: string | null;
230
+ resolvedAt: string | null;
231
+ confidence: number | null;
232
+ generatedBy: string;
233
+ fieldName?: string | undefined;
234
+ }, {
235
+ type: string;
236
+ status: "active" | "acknowledged" | "resolved";
237
+ message: string;
238
+ id: string;
239
+ title: string;
240
+ createdAt: string;
241
+ fieldId: string;
242
+ severity: "critical" | "high" | "medium" | "low";
243
+ recommendation: string | null;
244
+ acknowledgedAt: string | null;
245
+ acknowledgedBy: string | null;
246
+ resolvedAt: string | null;
247
+ confidence: number | null;
248
+ generatedBy: string;
249
+ fieldName?: string | undefined;
250
+ }>, "many">;
251
+ };
252
+ };
253
+ compareFields: {
254
+ summary: "Compare health across all fields in a farm";
255
+ method: "GET";
256
+ path: "/farms/:farmId/monitoring/compare";
257
+ responses: {
258
+ 200: z.ZodArray<z.ZodObject<{
259
+ fieldId: z.ZodString;
260
+ fieldName: z.ZodString;
261
+ avgNDVI: z.ZodNumber;
262
+ avgHealthScore: z.ZodNumber;
263
+ rank: z.ZodNumber;
264
+ }, "strip", z.ZodTypeAny, {
265
+ fieldId: string;
266
+ fieldName: string;
267
+ avgNDVI: number;
268
+ avgHealthScore: number;
269
+ rank: number;
270
+ }, {
271
+ fieldId: string;
272
+ fieldName: string;
273
+ avgNDVI: number;
274
+ avgHealthScore: number;
275
+ rank: number;
276
+ }>, "many">;
277
+ };
278
+ };
279
+ getFarmStats: {
280
+ summary: "Get monitoring statistics for a farm";
281
+ method: "GET";
282
+ path: "/farms/:farmId/monitoring/stats";
283
+ responses: {
284
+ 200: z.ZodObject<{
285
+ totalFields: z.ZodNumber;
286
+ healthyFields: z.ZodNumber;
287
+ warningFields: z.ZodNumber;
288
+ criticalFields: z.ZodNumber;
289
+ avgNDVI: z.ZodNumber;
290
+ totalActiveAlerts: z.ZodNumber;
291
+ }, "strip", z.ZodTypeAny, {
292
+ avgNDVI: number;
293
+ totalFields: number;
294
+ healthyFields: number;
295
+ warningFields: number;
296
+ criticalFields: number;
297
+ totalActiveAlerts: number;
298
+ }, {
299
+ avgNDVI: number;
300
+ totalFields: number;
301
+ healthyFields: number;
302
+ warningFields: number;
303
+ criticalFields: number;
304
+ totalActiveAlerts: number;
305
+ }>;
306
+ };
307
+ };
308
+ acknowledgeAlert: {
309
+ summary: "Acknowledge an alert";
310
+ method: "PATCH";
311
+ body: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
312
+ path: "/farms/:farmId/monitoring/alerts/:alertId/acknowledge";
313
+ responses: {
314
+ 200: z.ZodObject<{
315
+ id: z.ZodString;
316
+ fieldId: z.ZodString;
317
+ fieldName: z.ZodOptional<z.ZodString>;
318
+ type: z.ZodString;
319
+ severity: z.ZodEnum<["low", "medium", "high", "critical"]>;
320
+ title: z.ZodString;
321
+ message: z.ZodString;
322
+ recommendation: z.ZodNullable<z.ZodString>;
323
+ status: z.ZodEnum<["active", "acknowledged", "resolved"]>;
324
+ acknowledgedAt: z.ZodNullable<z.ZodString>;
325
+ acknowledgedBy: z.ZodNullable<z.ZodString>;
326
+ resolvedAt: z.ZodNullable<z.ZodString>;
327
+ confidence: z.ZodNullable<z.ZodNumber>;
328
+ generatedBy: z.ZodString;
329
+ createdAt: z.ZodString;
330
+ }, "strip", z.ZodTypeAny, {
331
+ type: string;
332
+ status: "active" | "acknowledged" | "resolved";
333
+ message: string;
334
+ id: string;
335
+ title: string;
336
+ createdAt: string;
337
+ fieldId: string;
338
+ severity: "critical" | "high" | "medium" | "low";
339
+ recommendation: string | null;
340
+ acknowledgedAt: string | null;
341
+ acknowledgedBy: string | null;
342
+ resolvedAt: string | null;
343
+ confidence: number | null;
344
+ generatedBy: string;
345
+ fieldName?: string | undefined;
346
+ }, {
347
+ type: string;
348
+ status: "active" | "acknowledged" | "resolved";
349
+ message: string;
350
+ id: string;
351
+ title: string;
352
+ createdAt: string;
353
+ fieldId: string;
354
+ severity: "critical" | "high" | "medium" | "low";
355
+ recommendation: string | null;
356
+ acknowledgedAt: string | null;
357
+ acknowledgedBy: string | null;
358
+ resolvedAt: string | null;
359
+ confidence: number | null;
360
+ generatedBy: string;
361
+ fieldName?: string | undefined;
362
+ }>;
363
+ 404: z.ZodObject<{
364
+ message: z.ZodString;
365
+ code: z.ZodOptional<z.ZodString>;
366
+ }, "strip", z.ZodTypeAny, {
367
+ message: string;
368
+ code?: string | undefined;
369
+ }, {
370
+ message: string;
371
+ code?: string | undefined;
372
+ }>;
373
+ };
374
+ };
375
+ triggerAnalysis: {
376
+ summary: "Manually trigger field analysis";
377
+ method: "POST";
378
+ body: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
379
+ path: "/farms/:farmId/fields/:fieldId/monitoring/analyze";
380
+ responses: {
381
+ 202: z.ZodObject<{
382
+ message: z.ZodString;
383
+ jobId: z.ZodString;
384
+ }, "strip", z.ZodTypeAny, {
385
+ message: string;
386
+ jobId: string;
387
+ }, {
388
+ message: string;
389
+ jobId: string;
390
+ }>;
391
+ 404: z.ZodObject<{
392
+ message: z.ZodString;
393
+ code: z.ZodOptional<z.ZodString>;
394
+ }, "strip", z.ZodTypeAny, {
395
+ message: string;
396
+ code?: string | undefined;
397
+ }, {
398
+ message: string;
399
+ code?: string | undefined;
400
+ }>;
401
+ };
402
+ };
403
+ };
404
+ export type FieldMonitoringRouter = typeof fieldMonitoringRouter;
405
+ //# sourceMappingURL=field-monitoring.routes.d.ts.map
@@ -0,0 +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;AAgBxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FhC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fieldMonitoringRouter = void 0;
4
+ const core_1 = require("@ts-rest/core");
5
+ const zod_1 = require("zod");
6
+ const field_monitoring_schemas_1 = require("../schemas/field-monitoring.schemas");
7
+ const c = (0, core_1.initContract)();
8
+ exports.fieldMonitoringRouter = c.router({
9
+ // Get current monitoring status for a field
10
+ getFieldStatus: {
11
+ method: 'GET',
12
+ path: '/farms/:farmId/fields/:fieldId/monitoring',
13
+ responses: {
14
+ 200: field_monitoring_schemas_1.fieldMonitoringSummarySchema,
15
+ 404: field_monitoring_schemas_1.fieldMonitoringErrorResponseSchema,
16
+ },
17
+ summary: 'Get current monitoring status for a field',
18
+ },
19
+ // Get NDVI trend over time
20
+ getNDVITrend: {
21
+ method: 'GET',
22
+ path: '/farms/:farmId/fields/:fieldId/monitoring/ndvi-trend',
23
+ query: field_monitoring_schemas_1.ndviTrendQuerySchema,
24
+ responses: {
25
+ 200: zod_1.z.union([
26
+ zod_1.z.array(field_monitoring_schemas_1.ndviTrendDataPointSchema),
27
+ zod_1.z.array(field_monitoring_schemas_1.weeklyNDVIStatsSchema),
28
+ ]),
29
+ 404: field_monitoring_schemas_1.fieldMonitoringErrorResponseSchema,
30
+ },
31
+ summary: 'Get NDVI trend for date range',
32
+ },
33
+ // Get alerts for a field
34
+ getFieldAlerts: {
35
+ method: 'GET',
36
+ path: '/farms/:farmId/fields/:fieldId/monitoring/alerts',
37
+ query: field_monitoring_schemas_1.alertsQuerySchema,
38
+ responses: {
39
+ 200: zod_1.z.array(field_monitoring_schemas_1.fieldAlertSchema),
40
+ },
41
+ summary: 'Get alerts for a field',
42
+ },
43
+ // Get alerts for entire farm
44
+ getFarmAlerts: {
45
+ method: 'GET',
46
+ path: '/farms/:farmId/monitoring/alerts',
47
+ query: field_monitoring_schemas_1.alertsQuerySchema,
48
+ responses: {
49
+ 200: zod_1.z.array(field_monitoring_schemas_1.fieldAlertSchema),
50
+ },
51
+ summary: 'Get all alerts for a farm',
52
+ },
53
+ // Compare fields in a farm
54
+ compareFields: {
55
+ method: 'GET',
56
+ path: '/farms/:farmId/monitoring/compare',
57
+ responses: {
58
+ 200: zod_1.z.array(field_monitoring_schemas_1.fieldComparisonSchema),
59
+ },
60
+ summary: 'Compare health across all fields in a farm',
61
+ },
62
+ // Get farm monitoring statistics
63
+ getFarmStats: {
64
+ method: 'GET',
65
+ path: '/farms/:farmId/monitoring/stats',
66
+ responses: {
67
+ 200: field_monitoring_schemas_1.farmMonitoringStatsSchema,
68
+ },
69
+ summary: 'Get monitoring statistics for a farm',
70
+ },
71
+ // Acknowledge alert
72
+ acknowledgeAlert: {
73
+ method: 'PATCH',
74
+ path: '/farms/:farmId/monitoring/alerts/:alertId/acknowledge',
75
+ body: zod_1.z.object({}),
76
+ responses: {
77
+ 200: field_monitoring_schemas_1.fieldAlertSchema,
78
+ 404: field_monitoring_schemas_1.fieldMonitoringErrorResponseSchema,
79
+ },
80
+ summary: 'Acknowledge an alert',
81
+ },
82
+ // Trigger manual field analysis
83
+ triggerAnalysis: {
84
+ method: 'POST',
85
+ path: '/farms/:farmId/fields/:fieldId/monitoring/analyze',
86
+ body: zod_1.z.object({}),
87
+ responses: {
88
+ 202: field_monitoring_schemas_1.triggerAnalysisResponseSchema,
89
+ 404: field_monitoring_schemas_1.fieldMonitoringErrorResponseSchema,
90
+ },
91
+ summary: 'Manually trigger field analysis',
92
+ },
93
+ });
@@ -14,6 +14,8 @@ import { documentsRouter } from './documents.routes';
14
14
  import { suppliersRouter } from './suppliers.routes';
15
15
  import { analyticsRouter } from './analytics.routes';
16
16
  import { categoriesRouter } from './categories.routes';
17
+ import { agentsRouter } from './agents.routes';
18
+ import { fieldMonitoringRouter } from './field-monitoring.routes';
17
19
  /**
18
20
  * Explicit interface definition for the API contract.
19
21
  * This avoids TypeScript's type serialization limit when combining many routers
@@ -36,6 +38,8 @@ export interface ApiContractDefinition {
36
38
  suppliers: typeof suppliersRouter;
37
39
  analytics: typeof analyticsRouter;
38
40
  categories: typeof categoriesRouter;
41
+ agents: typeof agentsRouter;
42
+ fieldMonitoring: typeof fieldMonitoringRouter;
39
43
  }
40
44
  /**
41
45
  * Main API contract combining all routers
@@ -68,4 +72,6 @@ export type DocumentsEndpoints = ApiContractType['documents'];
68
72
  export type SuppliersEndpoints = ApiContractType['suppliers'];
69
73
  export type AnalyticsEndpoints = ApiContractType['analytics'];
70
74
  export type CategoriesEndpoints = ApiContractType['categories'];
75
+ export type AgentsEndpoints = ApiContractType['agents'];
76
+ export type FieldMonitoringEndpoints = ApiContractType['fieldMonitoring'];
71
77
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ const documents_routes_1 = require("./documents.routes");
18
18
  const suppliers_routes_1 = require("./suppliers.routes");
19
19
  const analytics_routes_1 = require("./analytics.routes");
20
20
  const categories_routes_1 = require("./categories.routes");
21
+ const agents_routes_1 = require("./agents.routes");
22
+ const field_monitoring_routes_1 = require("./field-monitoring.routes");
21
23
  const c = (0, core_1.initContract)();
22
24
  /**
23
25
  * Main API contract combining all routers
@@ -42,4 +44,6 @@ exports.apiContract = c.router({
42
44
  suppliers: suppliers_routes_1.suppliersRouter,
43
45
  analytics: analytics_routes_1.analyticsRouter,
44
46
  categories: categories_routes_1.categoriesRouter,
47
+ agents: agents_routes_1.agentsRouter,
48
+ fieldMonitoring: field_monitoring_routes_1.fieldMonitoringRouter,
45
49
  });