@deepintel-ltd/farmpro-contracts 1.7.6 → 1.7.8

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,328 @@
1
+ import { z } from 'zod';
2
+ export declare const livestockLocationSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ livestockId: z.ZodOptional<z.ZodString>;
5
+ groupId: z.ZodOptional<z.ZodString>;
6
+ coordinates: z.ZodObject<{
7
+ lat: z.ZodNumber;
8
+ lng: z.ZodNumber;
9
+ accuracy: z.ZodOptional<z.ZodNumber>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ lat: number;
12
+ lng: number;
13
+ accuracy?: number | undefined;
14
+ }, {
15
+ lat: number;
16
+ lng: number;
17
+ accuracy?: number | undefined;
18
+ }>;
19
+ timestamp: z.ZodString;
20
+ source: z.ZodEnum<["gps_collar", "manual", "rfid_reader", "app"]>;
21
+ batteryLevel: z.ZodOptional<z.ZodNumber>;
22
+ }, "strip", z.ZodTypeAny, {
23
+ coordinates: {
24
+ lat: number;
25
+ lng: number;
26
+ accuracy?: number | undefined;
27
+ };
28
+ id: string;
29
+ source: "manual" | "gps_collar" | "rfid_reader" | "app";
30
+ timestamp: string;
31
+ batteryLevel?: number | undefined;
32
+ groupId?: string | undefined;
33
+ livestockId?: string | undefined;
34
+ }, {
35
+ coordinates: {
36
+ lat: number;
37
+ lng: number;
38
+ accuracy?: number | undefined;
39
+ };
40
+ id: string;
41
+ source: "manual" | "gps_collar" | "rfid_reader" | "app";
42
+ timestamp: string;
43
+ batteryLevel?: number | undefined;
44
+ groupId?: string | undefined;
45
+ livestockId?: string | undefined;
46
+ }>;
47
+ export declare const movementTrailPointSchema: z.ZodObject<{
48
+ lat: z.ZodNumber;
49
+ lng: z.ZodNumber;
50
+ timestamp: z.ZodString;
51
+ }, "strip", z.ZodTypeAny, {
52
+ timestamp: string;
53
+ lat: number;
54
+ lng: number;
55
+ }, {
56
+ timestamp: string;
57
+ lat: number;
58
+ lng: number;
59
+ }>;
60
+ export declare const livestockMovementTrailSchema: z.ZodObject<{
61
+ livestockId: z.ZodString;
62
+ points: z.ZodArray<z.ZodObject<{
63
+ lat: z.ZodNumber;
64
+ lng: z.ZodNumber;
65
+ timestamp: z.ZodString;
66
+ }, "strip", z.ZodTypeAny, {
67
+ timestamp: string;
68
+ lat: number;
69
+ lng: number;
70
+ }, {
71
+ timestamp: string;
72
+ lat: number;
73
+ lng: number;
74
+ }>, "many">;
75
+ dateRange: z.ZodObject<{
76
+ start: z.ZodString;
77
+ end: z.ZodString;
78
+ }, "strip", z.ZodTypeAny, {
79
+ start: string;
80
+ end: string;
81
+ }, {
82
+ start: string;
83
+ end: string;
84
+ }>;
85
+ }, "strip", z.ZodTypeAny, {
86
+ dateRange: {
87
+ start: string;
88
+ end: string;
89
+ };
90
+ livestockId: string;
91
+ points: {
92
+ timestamp: string;
93
+ lat: number;
94
+ lng: number;
95
+ }[];
96
+ }, {
97
+ dateRange: {
98
+ start: string;
99
+ end: string;
100
+ };
101
+ livestockId: string;
102
+ points: {
103
+ timestamp: string;
104
+ lat: number;
105
+ lng: number;
106
+ }[];
107
+ }>;
108
+ export declare const heatmapPointSchema: z.ZodObject<{
109
+ lat: z.ZodNumber;
110
+ lng: z.ZodNumber;
111
+ intensity: z.ZodNumber;
112
+ }, "strip", z.ZodTypeAny, {
113
+ lat: number;
114
+ lng: number;
115
+ intensity: number;
116
+ }, {
117
+ lat: number;
118
+ lng: number;
119
+ intensity: number;
120
+ }>;
121
+ export declare const grazingZoneSchema: z.ZodObject<{
122
+ id: z.ZodString;
123
+ name: z.ZodString;
124
+ geometry: z.ZodObject<{
125
+ type: z.ZodEnum<["Polygon", "MultiPolygon", "Point", "LineString"]>;
126
+ coordinates: z.ZodUnion<[z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, z.ZodArray<z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, "many">, z.ZodArray<z.ZodNumber, "many">, z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">]>;
127
+ }, "strip", z.ZodTypeAny, {
128
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
129
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
130
+ }, {
131
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
132
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
133
+ }>;
134
+ type: z.ZodEnum<["paddock", "shelter", "water_source", "feeding_area"]>;
135
+ currentOccupancy: z.ZodOptional<z.ZodNumber>;
136
+ capacity: z.ZodOptional<z.ZodNumber>;
137
+ }, "strip", z.ZodTypeAny, {
138
+ type: "paddock" | "shelter" | "water_source" | "feeding_area";
139
+ id: string;
140
+ name: string;
141
+ geometry: {
142
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
143
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
144
+ };
145
+ currentOccupancy?: number | undefined;
146
+ capacity?: number | undefined;
147
+ }, {
148
+ type: "paddock" | "shelter" | "water_source" | "feeding_area";
149
+ id: string;
150
+ name: string;
151
+ geometry: {
152
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
153
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
154
+ };
155
+ currentOccupancy?: number | undefined;
156
+ capacity?: number | undefined;
157
+ }>;
158
+ export declare const updateLocationBodySchema: z.ZodObject<{
159
+ coordinates: z.ZodObject<{
160
+ lat: z.ZodNumber;
161
+ lng: z.ZodNumber;
162
+ }, "strip", z.ZodTypeAny, {
163
+ lat: number;
164
+ lng: number;
165
+ }, {
166
+ lat: number;
167
+ lng: number;
168
+ }>;
169
+ }, "strip", z.ZodTypeAny, {
170
+ coordinates: {
171
+ lat: number;
172
+ lng: number;
173
+ };
174
+ }, {
175
+ coordinates: {
176
+ lat: number;
177
+ lng: number;
178
+ };
179
+ }>;
180
+ export declare const livestockLocationListResponseSchema: z.ZodArray<z.ZodObject<{
181
+ id: z.ZodString;
182
+ livestockId: z.ZodOptional<z.ZodString>;
183
+ groupId: z.ZodOptional<z.ZodString>;
184
+ coordinates: z.ZodObject<{
185
+ lat: z.ZodNumber;
186
+ lng: z.ZodNumber;
187
+ accuracy: z.ZodOptional<z.ZodNumber>;
188
+ }, "strip", z.ZodTypeAny, {
189
+ lat: number;
190
+ lng: number;
191
+ accuracy?: number | undefined;
192
+ }, {
193
+ lat: number;
194
+ lng: number;
195
+ accuracy?: number | undefined;
196
+ }>;
197
+ timestamp: z.ZodString;
198
+ source: z.ZodEnum<["gps_collar", "manual", "rfid_reader", "app"]>;
199
+ batteryLevel: z.ZodOptional<z.ZodNumber>;
200
+ }, "strip", z.ZodTypeAny, {
201
+ coordinates: {
202
+ lat: number;
203
+ lng: number;
204
+ accuracy?: number | undefined;
205
+ };
206
+ id: string;
207
+ source: "manual" | "gps_collar" | "rfid_reader" | "app";
208
+ timestamp: string;
209
+ batteryLevel?: number | undefined;
210
+ groupId?: string | undefined;
211
+ livestockId?: string | undefined;
212
+ }, {
213
+ coordinates: {
214
+ lat: number;
215
+ lng: number;
216
+ accuracy?: number | undefined;
217
+ };
218
+ id: string;
219
+ source: "manual" | "gps_collar" | "rfid_reader" | "app";
220
+ timestamp: string;
221
+ batteryLevel?: number | undefined;
222
+ groupId?: string | undefined;
223
+ livestockId?: string | undefined;
224
+ }>, "many">;
225
+ export declare const movementTrailListResponseSchema: z.ZodArray<z.ZodObject<{
226
+ livestockId: z.ZodString;
227
+ points: z.ZodArray<z.ZodObject<{
228
+ lat: z.ZodNumber;
229
+ lng: z.ZodNumber;
230
+ timestamp: z.ZodString;
231
+ }, "strip", z.ZodTypeAny, {
232
+ timestamp: string;
233
+ lat: number;
234
+ lng: number;
235
+ }, {
236
+ timestamp: string;
237
+ lat: number;
238
+ lng: number;
239
+ }>, "many">;
240
+ dateRange: z.ZodObject<{
241
+ start: z.ZodString;
242
+ end: z.ZodString;
243
+ }, "strip", z.ZodTypeAny, {
244
+ start: string;
245
+ end: string;
246
+ }, {
247
+ start: string;
248
+ end: string;
249
+ }>;
250
+ }, "strip", z.ZodTypeAny, {
251
+ dateRange: {
252
+ start: string;
253
+ end: string;
254
+ };
255
+ livestockId: string;
256
+ points: {
257
+ timestamp: string;
258
+ lat: number;
259
+ lng: number;
260
+ }[];
261
+ }, {
262
+ dateRange: {
263
+ start: string;
264
+ end: string;
265
+ };
266
+ livestockId: string;
267
+ points: {
268
+ timestamp: string;
269
+ lat: number;
270
+ lng: number;
271
+ }[];
272
+ }>, "many">;
273
+ export declare const heatmapResponseSchema: z.ZodArray<z.ZodObject<{
274
+ lat: z.ZodNumber;
275
+ lng: z.ZodNumber;
276
+ intensity: z.ZodNumber;
277
+ }, "strip", z.ZodTypeAny, {
278
+ lat: number;
279
+ lng: number;
280
+ intensity: number;
281
+ }, {
282
+ lat: number;
283
+ lng: number;
284
+ intensity: number;
285
+ }>, "many">;
286
+ export declare const grazingZoneListResponseSchema: z.ZodArray<z.ZodObject<{
287
+ id: z.ZodString;
288
+ name: z.ZodString;
289
+ geometry: z.ZodObject<{
290
+ type: z.ZodEnum<["Polygon", "MultiPolygon", "Point", "LineString"]>;
291
+ coordinates: z.ZodUnion<[z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, z.ZodArray<z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, "many">, z.ZodArray<z.ZodNumber, "many">, z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">]>;
292
+ }, "strip", z.ZodTypeAny, {
293
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
294
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
295
+ }, {
296
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
297
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
298
+ }>;
299
+ type: z.ZodEnum<["paddock", "shelter", "water_source", "feeding_area"]>;
300
+ currentOccupancy: z.ZodOptional<z.ZodNumber>;
301
+ capacity: z.ZodOptional<z.ZodNumber>;
302
+ }, "strip", z.ZodTypeAny, {
303
+ type: "paddock" | "shelter" | "water_source" | "feeding_area";
304
+ id: string;
305
+ name: string;
306
+ geometry: {
307
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
308
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
309
+ };
310
+ currentOccupancy?: number | undefined;
311
+ capacity?: number | undefined;
312
+ }, {
313
+ type: "paddock" | "shelter" | "water_source" | "feeding_area";
314
+ id: string;
315
+ name: string;
316
+ geometry: {
317
+ type: "Polygon" | "MultiPolygon" | "Point" | "LineString";
318
+ coordinates: number[] | number[][] | number[][][] | number[][][][];
319
+ };
320
+ currentOccupancy?: number | undefined;
321
+ capacity?: number | undefined;
322
+ }>, "many">;
323
+ export type LivestockLocationResponse = z.infer<typeof livestockLocationSchema>;
324
+ export type LivestockMovementTrailResponse = z.infer<typeof livestockMovementTrailSchema>;
325
+ export type HeatmapPointResponse = z.infer<typeof heatmapPointSchema>;
326
+ export type GrazingZoneResponse = z.infer<typeof grazingZoneSchema>;
327
+ export type UpdateLocationBody = z.infer<typeof updateLocationBodySchema>;
328
+ //# sourceMappingURL=livestock-map.schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"livestock-map.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/livestock-map.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYlC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOvC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO5B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;EAKnC,CAAC;AAEH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAmC,CAAC;AACpF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAwC,CAAC;AACrF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;WAA8B,CAAC;AACjE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAA6B,CAAC;AAExE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAChF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAC1F,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { z } from 'zod';
2
+ import { geoJSONGeometrySchema } from './common.schemas';
3
+ const locationSourceSchema = z.enum(['gps_collar', 'manual', 'rfid_reader', 'app']);
4
+ export const livestockLocationSchema = z.object({
5
+ id: z.string().uuid(),
6
+ livestockId: z.string().uuid().optional(),
7
+ groupId: z.string().uuid().optional(),
8
+ coordinates: z.object({
9
+ lat: z.number(),
10
+ lng: z.number(),
11
+ accuracy: z.number().optional(),
12
+ }),
13
+ timestamp: z.string().datetime(),
14
+ source: locationSourceSchema,
15
+ batteryLevel: z.number().min(0).max(100).optional(),
16
+ });
17
+ export const movementTrailPointSchema = z.object({
18
+ lat: z.number(),
19
+ lng: z.number(),
20
+ timestamp: z.string().datetime(),
21
+ });
22
+ export const livestockMovementTrailSchema = z.object({
23
+ livestockId: z.string().uuid(),
24
+ points: z.array(movementTrailPointSchema),
25
+ dateRange: z.object({
26
+ start: z.string().datetime(),
27
+ end: z.string().datetime(),
28
+ }),
29
+ });
30
+ export const heatmapPointSchema = z.object({
31
+ lat: z.number(),
32
+ lng: z.number(),
33
+ intensity: z.number(),
34
+ });
35
+ export const grazingZoneSchema = z.object({
36
+ id: z.string().uuid(),
37
+ name: z.string(),
38
+ geometry: geoJSONGeometrySchema,
39
+ type: z.enum(['paddock', 'shelter', 'water_source', 'feeding_area']),
40
+ currentOccupancy: z.number().optional(),
41
+ capacity: z.number().optional(),
42
+ });
43
+ export const updateLocationBodySchema = z.object({
44
+ coordinates: z.object({
45
+ lat: z.number(),
46
+ lng: z.number(),
47
+ }),
48
+ });
49
+ export const livestockLocationListResponseSchema = z.array(livestockLocationSchema);
50
+ export const movementTrailListResponseSchema = z.array(livestockMovementTrailSchema);
51
+ export const heatmapResponseSchema = z.array(heatmapPointSchema);
52
+ export const grazingZoneListResponseSchema = z.array(grazingZoneSchema);