@deepintel-ltd/farmpro-contracts 1.1.0 → 1.2.1

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,216 @@
1
+ import { z } from 'zod';
2
+ export declare const fieldMonitoringSummarySchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ fieldId: z.ZodString;
5
+ fieldName: z.ZodString;
6
+ latestDate: z.ZodString;
7
+ currentNDVI: z.ZodNullable<z.ZodNumber>;
8
+ currentNDWI: z.ZodNullable<z.ZodNumber>;
9
+ currentEVI: z.ZodNullable<z.ZodNumber>;
10
+ currentCropHealth: z.ZodNullable<z.ZodEnum<["poor", "fair", "good", "excellent"]>>;
11
+ currentWaterStress: z.ZodNullable<z.ZodEnum<["none", "low", "medium", "high"]>>;
12
+ overallStatus: z.ZodEnum<["ok", "warning", "critical"]>;
13
+ activeAlertCount: z.ZodNumber;
14
+ lastAlertDate: z.ZodNullable<z.ZodString>;
15
+ dataQuality: z.ZodNullable<z.ZodEnum<["excellent", "good", "fair", "poor"]>>;
16
+ cloudCover: z.ZodNullable<z.ZodNumber>;
17
+ lastProcessedAt: z.ZodString;
18
+ }, "strip", z.ZodTypeAny, {
19
+ id: string;
20
+ fieldId: string;
21
+ fieldName: string;
22
+ latestDate: string;
23
+ currentNDVI: number | null;
24
+ currentNDWI: number | null;
25
+ currentEVI: number | null;
26
+ currentCropHealth: "poor" | "fair" | "good" | "excellent" | null;
27
+ currentWaterStress: "high" | "medium" | "low" | "none" | null;
28
+ overallStatus: "ok" | "critical" | "warning";
29
+ activeAlertCount: number;
30
+ lastAlertDate: string | null;
31
+ dataQuality: "poor" | "fair" | "good" | "excellent" | null;
32
+ cloudCover: number | null;
33
+ lastProcessedAt: string;
34
+ }, {
35
+ id: string;
36
+ fieldId: string;
37
+ fieldName: string;
38
+ latestDate: string;
39
+ currentNDVI: number | null;
40
+ currentNDWI: number | null;
41
+ currentEVI: number | null;
42
+ currentCropHealth: "poor" | "fair" | "good" | "excellent" | null;
43
+ currentWaterStress: "high" | "medium" | "low" | "none" | null;
44
+ overallStatus: "ok" | "critical" | "warning";
45
+ activeAlertCount: number;
46
+ lastAlertDate: string | null;
47
+ dataQuality: "poor" | "fair" | "good" | "excellent" | null;
48
+ cloudCover: number | null;
49
+ lastProcessedAt: string;
50
+ }>;
51
+ export type FieldMonitoringSummary = z.infer<typeof fieldMonitoringSummarySchema>;
52
+ export declare const ndviTrendDataPointSchema: z.ZodObject<{
53
+ time: z.ZodString;
54
+ ndvi: z.ZodNumber;
55
+ cloudCover: z.ZodNumber;
56
+ }, "strip", z.ZodTypeAny, {
57
+ time: string;
58
+ ndvi: number;
59
+ cloudCover: number;
60
+ }, {
61
+ time: string;
62
+ ndvi: number;
63
+ cloudCover: number;
64
+ }>;
65
+ export type NDVITrendDataPoint = z.infer<typeof ndviTrendDataPointSchema>;
66
+ export declare const weeklyNDVIStatsSchema: z.ZodObject<{
67
+ week: z.ZodString;
68
+ avgNdvi: z.ZodNumber;
69
+ maxNdvi: z.ZodNumber;
70
+ minNdvi: z.ZodNumber;
71
+ }, "strip", z.ZodTypeAny, {
72
+ week: string;
73
+ avgNdvi: number;
74
+ maxNdvi: number;
75
+ minNdvi: number;
76
+ }, {
77
+ week: string;
78
+ avgNdvi: number;
79
+ maxNdvi: number;
80
+ minNdvi: number;
81
+ }>;
82
+ export type WeeklyNDVIStats = z.infer<typeof weeklyNDVIStatsSchema>;
83
+ export declare const fieldAlertSchema: z.ZodObject<{
84
+ id: z.ZodString;
85
+ fieldId: z.ZodString;
86
+ fieldName: z.ZodOptional<z.ZodString>;
87
+ type: z.ZodString;
88
+ severity: z.ZodEnum<["low", "medium", "high", "critical"]>;
89
+ title: z.ZodString;
90
+ message: z.ZodString;
91
+ recommendation: z.ZodNullable<z.ZodString>;
92
+ status: z.ZodEnum<["active", "acknowledged", "resolved"]>;
93
+ acknowledgedAt: z.ZodNullable<z.ZodString>;
94
+ acknowledgedBy: z.ZodNullable<z.ZodString>;
95
+ resolvedAt: z.ZodNullable<z.ZodString>;
96
+ confidence: z.ZodNullable<z.ZodNumber>;
97
+ generatedBy: z.ZodString;
98
+ createdAt: z.ZodString;
99
+ }, "strip", z.ZodTypeAny, {
100
+ type: string;
101
+ status: "active" | "acknowledged" | "resolved";
102
+ message: string;
103
+ id: string;
104
+ title: string;
105
+ createdAt: string;
106
+ fieldId: string;
107
+ severity: "critical" | "high" | "medium" | "low";
108
+ recommendation: string | null;
109
+ acknowledgedAt: string | null;
110
+ acknowledgedBy: string | null;
111
+ resolvedAt: string | null;
112
+ confidence: number | null;
113
+ generatedBy: string;
114
+ fieldName?: string | undefined;
115
+ }, {
116
+ type: string;
117
+ status: "active" | "acknowledged" | "resolved";
118
+ message: string;
119
+ id: string;
120
+ title: string;
121
+ createdAt: string;
122
+ fieldId: string;
123
+ severity: "critical" | "high" | "medium" | "low";
124
+ recommendation: string | null;
125
+ acknowledgedAt: string | null;
126
+ acknowledgedBy: string | null;
127
+ resolvedAt: string | null;
128
+ confidence: number | null;
129
+ generatedBy: string;
130
+ fieldName?: string | undefined;
131
+ }>;
132
+ export type FieldAlert = z.infer<typeof fieldAlertSchema>;
133
+ export declare const fieldComparisonSchema: z.ZodObject<{
134
+ fieldId: z.ZodString;
135
+ fieldName: z.ZodString;
136
+ avgNDVI: z.ZodNumber;
137
+ avgHealthScore: z.ZodNumber;
138
+ rank: z.ZodNumber;
139
+ }, "strip", z.ZodTypeAny, {
140
+ fieldId: string;
141
+ fieldName: string;
142
+ avgNDVI: number;
143
+ avgHealthScore: number;
144
+ rank: number;
145
+ }, {
146
+ fieldId: string;
147
+ fieldName: string;
148
+ avgNDVI: number;
149
+ avgHealthScore: number;
150
+ rank: number;
151
+ }>;
152
+ export type FieldComparison = z.infer<typeof fieldComparisonSchema>;
153
+ export declare const farmMonitoringStatsSchema: z.ZodObject<{
154
+ totalFields: z.ZodNumber;
155
+ healthyFields: z.ZodNumber;
156
+ warningFields: z.ZodNumber;
157
+ criticalFields: z.ZodNumber;
158
+ avgNDVI: z.ZodNumber;
159
+ totalActiveAlerts: z.ZodNumber;
160
+ }, "strip", z.ZodTypeAny, {
161
+ avgNDVI: number;
162
+ totalFields: number;
163
+ healthyFields: number;
164
+ warningFields: number;
165
+ criticalFields: number;
166
+ totalActiveAlerts: number;
167
+ }, {
168
+ avgNDVI: number;
169
+ totalFields: number;
170
+ healthyFields: number;
171
+ warningFields: number;
172
+ criticalFields: number;
173
+ totalActiveAlerts: number;
174
+ }>;
175
+ export type FarmMonitoringStats = z.infer<typeof farmMonitoringStatsSchema>;
176
+ export declare const ndviTrendQuerySchema: z.ZodObject<{
177
+ startDate: z.ZodString;
178
+ endDate: z.ZodString;
179
+ interval: z.ZodDefault<z.ZodEnum<["daily", "weekly"]>>;
180
+ }, "strip", z.ZodTypeAny, {
181
+ startDate: string;
182
+ endDate: string;
183
+ interval: "daily" | "weekly";
184
+ }, {
185
+ startDate: string;
186
+ endDate: string;
187
+ interval?: "daily" | "weekly" | undefined;
188
+ }>;
189
+ export declare const alertsQuerySchema: z.ZodObject<{
190
+ status: z.ZodOptional<z.ZodEnum<["active", "acknowledged", "resolved"]>>;
191
+ }, "strip", z.ZodTypeAny, {
192
+ status?: "active" | "acknowledged" | "resolved" | undefined;
193
+ }, {
194
+ status?: "active" | "acknowledged" | "resolved" | undefined;
195
+ }>;
196
+ export declare const triggerAnalysisResponseSchema: z.ZodObject<{
197
+ message: z.ZodString;
198
+ jobId: z.ZodString;
199
+ }, "strip", z.ZodTypeAny, {
200
+ message: string;
201
+ jobId: string;
202
+ }, {
203
+ message: string;
204
+ jobId: string;
205
+ }>;
206
+ export declare const fieldMonitoringErrorResponseSchema: z.ZodObject<{
207
+ message: z.ZodString;
208
+ code: z.ZodOptional<z.ZodString>;
209
+ }, "strip", z.ZodTypeAny, {
210
+ message: string;
211
+ code?: string | undefined;
212
+ }, {
213
+ message: string;
214
+ code?: string | undefined;
215
+ }>;
216
+ //# sourceMappingURL=field-monitoring.schemas.d.ts.map
@@ -0,0 +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;AAGxB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB3B,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;AAGH,eAAO,MAAM,6BAA6B;;;;;;;;;EAGxC,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;EAG7C,CAAC"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fieldMonitoringErrorResponseSchema = exports.triggerAnalysisResponseSchema = exports.alertsQuerySchema = exports.ndviTrendQuerySchema = exports.farmMonitoringStatsSchema = exports.fieldComparisonSchema = exports.fieldAlertSchema = exports.weeklyNDVIStatsSchema = exports.ndviTrendDataPointSchema = exports.fieldMonitoringSummarySchema = void 0;
4
+ const zod_1 = require("zod");
5
+ // Field Monitoring Summary Schema
6
+ exports.fieldMonitoringSummarySchema = zod_1.z.object({
7
+ id: zod_1.z.string().uuid(),
8
+ fieldId: zod_1.z.string().uuid(),
9
+ fieldName: zod_1.z.string(),
10
+ latestDate: zod_1.z.string().datetime(),
11
+ currentNDVI: zod_1.z.number().min(-1).max(1).nullable(),
12
+ currentNDWI: zod_1.z.number().min(-1).max(1).nullable(),
13
+ currentEVI: zod_1.z.number().nullable(),
14
+ currentCropHealth: zod_1.z
15
+ .enum(['poor', 'fair', 'good', 'excellent'])
16
+ .nullable(),
17
+ currentWaterStress: zod_1.z
18
+ .enum(['none', 'low', 'medium', 'high'])
19
+ .nullable(),
20
+ overallStatus: zod_1.z.enum(['ok', 'warning', 'critical']),
21
+ activeAlertCount: zod_1.z.number(),
22
+ lastAlertDate: zod_1.z.string().datetime().nullable(),
23
+ dataQuality: zod_1.z.enum(['excellent', 'good', 'fair', 'poor']).nullable(),
24
+ cloudCover: zod_1.z.number().nullable(),
25
+ lastProcessedAt: zod_1.z.string().datetime(),
26
+ });
27
+ // NDVI Trend Data Point Schema
28
+ exports.ndviTrendDataPointSchema = zod_1.z.object({
29
+ time: zod_1.z.string().datetime(),
30
+ ndvi: zod_1.z.number().min(-1).max(1),
31
+ cloudCover: zod_1.z.number(),
32
+ });
33
+ // Weekly NDVI Stats Schema
34
+ exports.weeklyNDVIStatsSchema = zod_1.z.object({
35
+ week: zod_1.z.string().datetime(),
36
+ avgNdvi: zod_1.z.number(),
37
+ maxNdvi: zod_1.z.number(),
38
+ minNdvi: zod_1.z.number(),
39
+ });
40
+ // Field Alert Schema
41
+ exports.fieldAlertSchema = zod_1.z.object({
42
+ id: zod_1.z.string().uuid(),
43
+ fieldId: zod_1.z.string().uuid(),
44
+ fieldName: zod_1.z.string().optional(),
45
+ type: zod_1.z.string(),
46
+ severity: zod_1.z.enum(['low', 'medium', 'high', 'critical']),
47
+ title: zod_1.z.string(),
48
+ message: zod_1.z.string(),
49
+ recommendation: zod_1.z.string().nullable(),
50
+ status: zod_1.z.enum(['active', 'acknowledged', 'resolved']),
51
+ acknowledgedAt: zod_1.z.string().datetime().nullable(),
52
+ acknowledgedBy: zod_1.z.string().nullable(),
53
+ resolvedAt: zod_1.z.string().datetime().nullable(),
54
+ confidence: zod_1.z.number().min(0).max(1).nullable(),
55
+ generatedBy: zod_1.z.string(),
56
+ createdAt: zod_1.z.string().datetime(),
57
+ });
58
+ // Field Comparison Schema
59
+ exports.fieldComparisonSchema = zod_1.z.object({
60
+ fieldId: zod_1.z.string().uuid(),
61
+ fieldName: zod_1.z.string(),
62
+ avgNDVI: zod_1.z.number(),
63
+ avgHealthScore: zod_1.z.number(),
64
+ rank: zod_1.z.number(),
65
+ });
66
+ // Farm Monitoring Stats Schema
67
+ exports.farmMonitoringStatsSchema = zod_1.z.object({
68
+ totalFields: zod_1.z.number(),
69
+ healthyFields: zod_1.z.number(),
70
+ warningFields: zod_1.z.number(),
71
+ criticalFields: zod_1.z.number(),
72
+ avgNDVI: zod_1.z.number(),
73
+ totalActiveAlerts: zod_1.z.number(),
74
+ });
75
+ // Query Schemas
76
+ exports.ndviTrendQuerySchema = zod_1.z.object({
77
+ startDate: zod_1.z.string().datetime(),
78
+ endDate: zod_1.z.string().datetime(),
79
+ interval: zod_1.z.enum(['daily', 'weekly']).default('daily'),
80
+ });
81
+ exports.alertsQuerySchema = zod_1.z.object({
82
+ status: zod_1.z.enum(['active', 'acknowledged', 'resolved']).optional(),
83
+ });
84
+ // Response Schemas
85
+ exports.triggerAnalysisResponseSchema = zod_1.z.object({
86
+ message: zod_1.z.string(),
87
+ jobId: zod_1.z.string(),
88
+ });
89
+ exports.fieldMonitoringErrorResponseSchema = zod_1.z.object({
90
+ message: zod_1.z.string(),
91
+ code: zod_1.z.string().optional(),
92
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deepintel-ltd/farmpro-contracts",
3
- "version": "1.1.0",
3
+ "version": "1.2.1",
4
4
  "description": "Type-safe API contracts for FarmPro API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",