@deepintel-ltd/farmpro-contracts 1.34.1 → 1.34.3
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/crop-care.routes.d.ts +143 -0
- package/dist/routes/crop-care.routes.d.ts.map +1 -1
- package/dist/routes/crop-care.routes.js +25 -5
- package/dist/schemas/crop-care.schemas.d.ts +136 -0
- package/dist/schemas/crop-care.schemas.d.ts.map +1 -1
- package/dist/schemas/crop-care.schemas.js +27 -0
- package/package.json +1 -1
|
@@ -12,14 +12,18 @@ export declare const cropCareRouter: {
|
|
|
12
12
|
plantingDate: z.ZodOptional<z.ZodString>;
|
|
13
13
|
transplantedAt: z.ZodOptional<z.ZodString>;
|
|
14
14
|
cropStage: z.ZodOptional<z.ZodString>;
|
|
15
|
+
/** Client calendar date, so the stage matches the farmer's day rather than the server's. */
|
|
16
|
+
today: z.ZodOptional<z.ZodString>;
|
|
15
17
|
}, "strip", z.ZodTypeAny, {
|
|
16
18
|
plantingDate?: string | undefined;
|
|
17
19
|
transplantedAt?: string | undefined;
|
|
18
20
|
cropStage?: string | undefined;
|
|
21
|
+
today?: string | undefined;
|
|
19
22
|
}, {
|
|
20
23
|
plantingDate?: string | undefined;
|
|
21
24
|
transplantedAt?: string | undefined;
|
|
22
25
|
cropStage?: string | undefined;
|
|
26
|
+
today?: string | undefined;
|
|
23
27
|
}>;
|
|
24
28
|
summary: "Resolve the stored care plan for a crop and planting clock";
|
|
25
29
|
method: "GET";
|
|
@@ -866,6 +870,28 @@ export declare const cropCareRouter: {
|
|
|
866
870
|
checks: z.ZodArray<z.ZodString, "many">;
|
|
867
871
|
}, z.ZodTypeAny, "passthrough">>;
|
|
868
872
|
needsDate: z.ZodBoolean;
|
|
873
|
+
assumedTransplant: z.ZodOptional<z.ZodBoolean>;
|
|
874
|
+
stageSource: z.ZodOptional<z.ZodEnum<["calendar", "observed"]>>;
|
|
875
|
+
reviewNote: z.ZodOptional<z.ZodString>;
|
|
876
|
+
adjustments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
877
|
+
id: z.ZodString;
|
|
878
|
+
severity: z.ZodEnum<["info", "watch", "act"]>;
|
|
879
|
+
title: z.ZodString;
|
|
880
|
+
detail: z.ZodString;
|
|
881
|
+
source: z.ZodString;
|
|
882
|
+
}, "strip", z.ZodTypeAny, {
|
|
883
|
+
id: string;
|
|
884
|
+
title: string;
|
|
885
|
+
detail: string;
|
|
886
|
+
source: string;
|
|
887
|
+
severity: "info" | "watch" | "act";
|
|
888
|
+
}, {
|
|
889
|
+
id: string;
|
|
890
|
+
title: string;
|
|
891
|
+
detail: string;
|
|
892
|
+
source: string;
|
|
893
|
+
severity: "info" | "watch" | "act";
|
|
894
|
+
}>, "many">>;
|
|
869
895
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
870
896
|
origin: z.ZodEnum<["file", "database", "generic"]>;
|
|
871
897
|
plan: z.ZodObject<{
|
|
@@ -1707,6 +1733,28 @@ export declare const cropCareRouter: {
|
|
|
1707
1733
|
checks: z.ZodArray<z.ZodString, "many">;
|
|
1708
1734
|
}, z.ZodTypeAny, "passthrough">>;
|
|
1709
1735
|
needsDate: z.ZodBoolean;
|
|
1736
|
+
assumedTransplant: z.ZodOptional<z.ZodBoolean>;
|
|
1737
|
+
stageSource: z.ZodOptional<z.ZodEnum<["calendar", "observed"]>>;
|
|
1738
|
+
reviewNote: z.ZodOptional<z.ZodString>;
|
|
1739
|
+
adjustments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1740
|
+
id: z.ZodString;
|
|
1741
|
+
severity: z.ZodEnum<["info", "watch", "act"]>;
|
|
1742
|
+
title: z.ZodString;
|
|
1743
|
+
detail: z.ZodString;
|
|
1744
|
+
source: z.ZodString;
|
|
1745
|
+
}, "strip", z.ZodTypeAny, {
|
|
1746
|
+
id: string;
|
|
1747
|
+
title: string;
|
|
1748
|
+
detail: string;
|
|
1749
|
+
source: string;
|
|
1750
|
+
severity: "info" | "watch" | "act";
|
|
1751
|
+
}, {
|
|
1752
|
+
id: string;
|
|
1753
|
+
title: string;
|
|
1754
|
+
detail: string;
|
|
1755
|
+
source: string;
|
|
1756
|
+
severity: "info" | "watch" | "act";
|
|
1757
|
+
}>, "many">>;
|
|
1710
1758
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1711
1759
|
origin: z.ZodEnum<["file", "database", "generic"]>;
|
|
1712
1760
|
plan: z.ZodObject<{
|
|
@@ -2548,8 +2596,103 @@ export declare const cropCareRouter: {
|
|
|
2548
2596
|
checks: z.ZodArray<z.ZodString, "many">;
|
|
2549
2597
|
}, z.ZodTypeAny, "passthrough">>;
|
|
2550
2598
|
needsDate: z.ZodBoolean;
|
|
2599
|
+
assumedTransplant: z.ZodOptional<z.ZodBoolean>;
|
|
2600
|
+
stageSource: z.ZodOptional<z.ZodEnum<["calendar", "observed"]>>;
|
|
2601
|
+
reviewNote: z.ZodOptional<z.ZodString>;
|
|
2602
|
+
adjustments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2603
|
+
id: z.ZodString;
|
|
2604
|
+
severity: z.ZodEnum<["info", "watch", "act"]>;
|
|
2605
|
+
title: z.ZodString;
|
|
2606
|
+
detail: z.ZodString;
|
|
2607
|
+
source: z.ZodString;
|
|
2608
|
+
}, "strip", z.ZodTypeAny, {
|
|
2609
|
+
id: string;
|
|
2610
|
+
title: string;
|
|
2611
|
+
detail: string;
|
|
2612
|
+
source: string;
|
|
2613
|
+
severity: "info" | "watch" | "act";
|
|
2614
|
+
}, {
|
|
2615
|
+
id: string;
|
|
2616
|
+
title: string;
|
|
2617
|
+
detail: string;
|
|
2618
|
+
source: string;
|
|
2619
|
+
severity: "info" | "watch" | "act";
|
|
2620
|
+
}>, "many">>;
|
|
2551
2621
|
}, z.ZodTypeAny, "passthrough">>;
|
|
2552
2622
|
};
|
|
2553
2623
|
};
|
|
2624
|
+
adjustments: {
|
|
2625
|
+
pathParams: z.ZodObject<{
|
|
2626
|
+
farmId: z.ZodString;
|
|
2627
|
+
fieldId: z.ZodString;
|
|
2628
|
+
}, "strip", z.ZodTypeAny, {
|
|
2629
|
+
farmId: string;
|
|
2630
|
+
fieldId: string;
|
|
2631
|
+
}, {
|
|
2632
|
+
farmId: string;
|
|
2633
|
+
fieldId: string;
|
|
2634
|
+
}>;
|
|
2635
|
+
summary: "Adjust a field care plan for weather, soil test and locality";
|
|
2636
|
+
method: "GET";
|
|
2637
|
+
path: "/farms/:farmId/fields/:fieldId/care-adjustments";
|
|
2638
|
+
responses: {
|
|
2639
|
+
200: z.ZodObject<{
|
|
2640
|
+
crop: z.ZodNullable<z.ZodString>;
|
|
2641
|
+
stage: z.ZodNullable<z.ZodString>;
|
|
2642
|
+
adjustments: z.ZodArray<z.ZodObject<{
|
|
2643
|
+
id: z.ZodString;
|
|
2644
|
+
severity: z.ZodEnum<["info", "watch", "act"]>;
|
|
2645
|
+
title: z.ZodString;
|
|
2646
|
+
detail: z.ZodString;
|
|
2647
|
+
source: z.ZodString;
|
|
2648
|
+
}, "strip", z.ZodTypeAny, {
|
|
2649
|
+
id: string;
|
|
2650
|
+
title: string;
|
|
2651
|
+
detail: string;
|
|
2652
|
+
source: string;
|
|
2653
|
+
severity: "info" | "watch" | "act";
|
|
2654
|
+
}, {
|
|
2655
|
+
id: string;
|
|
2656
|
+
title: string;
|
|
2657
|
+
detail: string;
|
|
2658
|
+
source: string;
|
|
2659
|
+
severity: "info" | "watch" | "act";
|
|
2660
|
+
}>, "many">;
|
|
2661
|
+
weatherAvailable: z.ZodBoolean;
|
|
2662
|
+
generatedAt: z.ZodString;
|
|
2663
|
+
}, "strip", z.ZodTypeAny, {
|
|
2664
|
+
crop: string | null;
|
|
2665
|
+
generatedAt: string;
|
|
2666
|
+
stage: string | null;
|
|
2667
|
+
adjustments: {
|
|
2668
|
+
id: string;
|
|
2669
|
+
title: string;
|
|
2670
|
+
detail: string;
|
|
2671
|
+
source: string;
|
|
2672
|
+
severity: "info" | "watch" | "act";
|
|
2673
|
+
}[];
|
|
2674
|
+
weatherAvailable: boolean;
|
|
2675
|
+
}, {
|
|
2676
|
+
crop: string | null;
|
|
2677
|
+
generatedAt: string;
|
|
2678
|
+
stage: string | null;
|
|
2679
|
+
adjustments: {
|
|
2680
|
+
id: string;
|
|
2681
|
+
title: string;
|
|
2682
|
+
detail: string;
|
|
2683
|
+
source: string;
|
|
2684
|
+
severity: "info" | "watch" | "act";
|
|
2685
|
+
}[];
|
|
2686
|
+
weatherAvailable: boolean;
|
|
2687
|
+
}>;
|
|
2688
|
+
404: z.ZodObject<{
|
|
2689
|
+
message: z.ZodString;
|
|
2690
|
+
}, "strip", z.ZodTypeAny, {
|
|
2691
|
+
message: string;
|
|
2692
|
+
}, {
|
|
2693
|
+
message: string;
|
|
2694
|
+
}>;
|
|
2695
|
+
};
|
|
2696
|
+
};
|
|
2554
2697
|
};
|
|
2555
2698
|
//# sourceMappingURL=crop-care.routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crop-care.routes.d.ts","sourceRoot":"","sources":["../../src/routes/crop-care.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"crop-care.routes.d.ts","sourceRoot":"","sources":["../../src/routes/crop-care.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;YAerB,4FAA4F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBhG,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { initContract } from '@ts-rest/core';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { resolvedCareSchema } from '../schemas/crop-care.schemas';
|
|
3
|
+
import { careAdjustmentsResponseSchema, resolvedCareSchema } from '../schemas/crop-care.schemas';
|
|
4
4
|
const c = initContract();
|
|
5
|
+
const ymd = z.string().regex(/^\d{4}-\d{2}-\d{2}/);
|
|
5
6
|
export const cropCareRouter = c.router({
|
|
6
7
|
/**
|
|
7
8
|
* File bank, then the database, then the generic card.
|
|
@@ -11,16 +12,35 @@ export const cropCareRouter = c.router({
|
|
|
11
12
|
method: 'GET',
|
|
12
13
|
path: '/crop-care/plans/:cropId',
|
|
13
14
|
pathParams: z.object({
|
|
14
|
-
cropId: z.string().min(1),
|
|
15
|
+
cropId: z.string().min(1).max(120),
|
|
15
16
|
}),
|
|
16
17
|
query: z.object({
|
|
17
|
-
plantingDate:
|
|
18
|
-
transplantedAt:
|
|
19
|
-
cropStage: z.string().optional(),
|
|
18
|
+
plantingDate: ymd.optional(),
|
|
19
|
+
transplantedAt: ymd.optional(),
|
|
20
|
+
cropStage: z.string().max(40).optional(),
|
|
21
|
+
/** Client calendar date, so the stage matches the farmer's day rather than the server's. */
|
|
22
|
+
today: ymd.optional(),
|
|
20
23
|
}),
|
|
21
24
|
responses: {
|
|
22
25
|
200: resolvedCareSchema,
|
|
23
26
|
},
|
|
24
27
|
summary: 'Resolve the stored care plan for a crop and planting clock',
|
|
25
28
|
},
|
|
29
|
+
/**
|
|
30
|
+
* Weather, soil and locality adjustments for a field's current care stage.
|
|
31
|
+
* Deterministic rules over stored evidence; does not call a model.
|
|
32
|
+
*/
|
|
33
|
+
adjustments: {
|
|
34
|
+
method: 'GET',
|
|
35
|
+
path: '/farms/:farmId/fields/:fieldId/care-adjustments',
|
|
36
|
+
pathParams: z.object({
|
|
37
|
+
farmId: z.string().min(1),
|
|
38
|
+
fieldId: z.string().min(1),
|
|
39
|
+
}),
|
|
40
|
+
responses: {
|
|
41
|
+
200: careAdjustmentsResponseSchema,
|
|
42
|
+
404: z.object({ message: z.string() }),
|
|
43
|
+
},
|
|
44
|
+
summary: 'Adjust a field care plan for weather, soil test and locality',
|
|
45
|
+
},
|
|
26
46
|
});
|
|
@@ -929,6 +929,76 @@ export declare const carePlanSchema: z.ZodObject<{
|
|
|
929
929
|
}, z.ZodTypeAny, "passthrough">>, "many">>;
|
|
930
930
|
}, z.ZodTypeAny, "passthrough">>>;
|
|
931
931
|
}, z.ZodTypeAny, "passthrough">>;
|
|
932
|
+
export declare const careAdjustmentSchema: z.ZodObject<{
|
|
933
|
+
id: z.ZodString;
|
|
934
|
+
severity: z.ZodEnum<["info", "watch", "act"]>;
|
|
935
|
+
title: z.ZodString;
|
|
936
|
+
detail: z.ZodString;
|
|
937
|
+
source: z.ZodString;
|
|
938
|
+
}, "strip", z.ZodTypeAny, {
|
|
939
|
+
id: string;
|
|
940
|
+
title: string;
|
|
941
|
+
detail: string;
|
|
942
|
+
source: string;
|
|
943
|
+
severity: "info" | "watch" | "act";
|
|
944
|
+
}, {
|
|
945
|
+
id: string;
|
|
946
|
+
title: string;
|
|
947
|
+
detail: string;
|
|
948
|
+
source: string;
|
|
949
|
+
severity: "info" | "watch" | "act";
|
|
950
|
+
}>;
|
|
951
|
+
export declare const careAdjustmentsResponseSchema: z.ZodObject<{
|
|
952
|
+
crop: z.ZodNullable<z.ZodString>;
|
|
953
|
+
stage: z.ZodNullable<z.ZodString>;
|
|
954
|
+
adjustments: z.ZodArray<z.ZodObject<{
|
|
955
|
+
id: z.ZodString;
|
|
956
|
+
severity: z.ZodEnum<["info", "watch", "act"]>;
|
|
957
|
+
title: z.ZodString;
|
|
958
|
+
detail: z.ZodString;
|
|
959
|
+
source: z.ZodString;
|
|
960
|
+
}, "strip", z.ZodTypeAny, {
|
|
961
|
+
id: string;
|
|
962
|
+
title: string;
|
|
963
|
+
detail: string;
|
|
964
|
+
source: string;
|
|
965
|
+
severity: "info" | "watch" | "act";
|
|
966
|
+
}, {
|
|
967
|
+
id: string;
|
|
968
|
+
title: string;
|
|
969
|
+
detail: string;
|
|
970
|
+
source: string;
|
|
971
|
+
severity: "info" | "watch" | "act";
|
|
972
|
+
}>, "many">;
|
|
973
|
+
/** False when no forecast could be loaded, so weather rules were skipped. */
|
|
974
|
+
weatherAvailable: z.ZodBoolean;
|
|
975
|
+
generatedAt: z.ZodString;
|
|
976
|
+
}, "strip", z.ZodTypeAny, {
|
|
977
|
+
crop: string | null;
|
|
978
|
+
generatedAt: string;
|
|
979
|
+
stage: string | null;
|
|
980
|
+
adjustments: {
|
|
981
|
+
id: string;
|
|
982
|
+
title: string;
|
|
983
|
+
detail: string;
|
|
984
|
+
source: string;
|
|
985
|
+
severity: "info" | "watch" | "act";
|
|
986
|
+
}[];
|
|
987
|
+
weatherAvailable: boolean;
|
|
988
|
+
}, {
|
|
989
|
+
crop: string | null;
|
|
990
|
+
generatedAt: string;
|
|
991
|
+
stage: string | null;
|
|
992
|
+
adjustments: {
|
|
993
|
+
id: string;
|
|
994
|
+
title: string;
|
|
995
|
+
detail: string;
|
|
996
|
+
source: string;
|
|
997
|
+
severity: "info" | "watch" | "act";
|
|
998
|
+
}[];
|
|
999
|
+
weatherAvailable: boolean;
|
|
1000
|
+
}>;
|
|
1001
|
+
export type CareAdjustmentsResponse = z.infer<typeof careAdjustmentsResponseSchema>;
|
|
932
1002
|
export declare const resolvedCareSchema: z.ZodObject<{
|
|
933
1003
|
origin: z.ZodEnum<["file", "database", "generic"]>;
|
|
934
1004
|
plan: z.ZodObject<{
|
|
@@ -1770,6 +1840,28 @@ export declare const resolvedCareSchema: z.ZodObject<{
|
|
|
1770
1840
|
checks: z.ZodArray<z.ZodString, "many">;
|
|
1771
1841
|
}, z.ZodTypeAny, "passthrough">>;
|
|
1772
1842
|
needsDate: z.ZodBoolean;
|
|
1843
|
+
assumedTransplant: z.ZodOptional<z.ZodBoolean>;
|
|
1844
|
+
stageSource: z.ZodOptional<z.ZodEnum<["calendar", "observed"]>>;
|
|
1845
|
+
reviewNote: z.ZodOptional<z.ZodString>;
|
|
1846
|
+
adjustments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1847
|
+
id: z.ZodString;
|
|
1848
|
+
severity: z.ZodEnum<["info", "watch", "act"]>;
|
|
1849
|
+
title: z.ZodString;
|
|
1850
|
+
detail: z.ZodString;
|
|
1851
|
+
source: z.ZodString;
|
|
1852
|
+
}, "strip", z.ZodTypeAny, {
|
|
1853
|
+
id: string;
|
|
1854
|
+
title: string;
|
|
1855
|
+
detail: string;
|
|
1856
|
+
source: string;
|
|
1857
|
+
severity: "info" | "watch" | "act";
|
|
1858
|
+
}, {
|
|
1859
|
+
id: string;
|
|
1860
|
+
title: string;
|
|
1861
|
+
detail: string;
|
|
1862
|
+
source: string;
|
|
1863
|
+
severity: "info" | "watch" | "act";
|
|
1864
|
+
}>, "many">>;
|
|
1773
1865
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
1774
1866
|
origin: z.ZodEnum<["file", "database", "generic"]>;
|
|
1775
1867
|
plan: z.ZodObject<{
|
|
@@ -2611,6 +2703,28 @@ export declare const resolvedCareSchema: z.ZodObject<{
|
|
|
2611
2703
|
checks: z.ZodArray<z.ZodString, "many">;
|
|
2612
2704
|
}, z.ZodTypeAny, "passthrough">>;
|
|
2613
2705
|
needsDate: z.ZodBoolean;
|
|
2706
|
+
assumedTransplant: z.ZodOptional<z.ZodBoolean>;
|
|
2707
|
+
stageSource: z.ZodOptional<z.ZodEnum<["calendar", "observed"]>>;
|
|
2708
|
+
reviewNote: z.ZodOptional<z.ZodString>;
|
|
2709
|
+
adjustments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2710
|
+
id: z.ZodString;
|
|
2711
|
+
severity: z.ZodEnum<["info", "watch", "act"]>;
|
|
2712
|
+
title: z.ZodString;
|
|
2713
|
+
detail: z.ZodString;
|
|
2714
|
+
source: z.ZodString;
|
|
2715
|
+
}, "strip", z.ZodTypeAny, {
|
|
2716
|
+
id: string;
|
|
2717
|
+
title: string;
|
|
2718
|
+
detail: string;
|
|
2719
|
+
source: string;
|
|
2720
|
+
severity: "info" | "watch" | "act";
|
|
2721
|
+
}, {
|
|
2722
|
+
id: string;
|
|
2723
|
+
title: string;
|
|
2724
|
+
detail: string;
|
|
2725
|
+
source: string;
|
|
2726
|
+
severity: "info" | "watch" | "act";
|
|
2727
|
+
}>, "many">>;
|
|
2614
2728
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
2615
2729
|
origin: z.ZodEnum<["file", "database", "generic"]>;
|
|
2616
2730
|
plan: z.ZodObject<{
|
|
@@ -3452,6 +3566,28 @@ export declare const resolvedCareSchema: z.ZodObject<{
|
|
|
3452
3566
|
checks: z.ZodArray<z.ZodString, "many">;
|
|
3453
3567
|
}, z.ZodTypeAny, "passthrough">>;
|
|
3454
3568
|
needsDate: z.ZodBoolean;
|
|
3569
|
+
assumedTransplant: z.ZodOptional<z.ZodBoolean>;
|
|
3570
|
+
stageSource: z.ZodOptional<z.ZodEnum<["calendar", "observed"]>>;
|
|
3571
|
+
reviewNote: z.ZodOptional<z.ZodString>;
|
|
3572
|
+
adjustments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3573
|
+
id: z.ZodString;
|
|
3574
|
+
severity: z.ZodEnum<["info", "watch", "act"]>;
|
|
3575
|
+
title: z.ZodString;
|
|
3576
|
+
detail: z.ZodString;
|
|
3577
|
+
source: z.ZodString;
|
|
3578
|
+
}, "strip", z.ZodTypeAny, {
|
|
3579
|
+
id: string;
|
|
3580
|
+
title: string;
|
|
3581
|
+
detail: string;
|
|
3582
|
+
source: string;
|
|
3583
|
+
severity: "info" | "watch" | "act";
|
|
3584
|
+
}, {
|
|
3585
|
+
id: string;
|
|
3586
|
+
title: string;
|
|
3587
|
+
detail: string;
|
|
3588
|
+
source: string;
|
|
3589
|
+
severity: "info" | "watch" | "act";
|
|
3590
|
+
}>, "many">>;
|
|
3455
3591
|
}, z.ZodTypeAny, "passthrough">>;
|
|
3456
3592
|
export type ResolvedCareContract = z.infer<typeof resolvedCareSchema>;
|
|
3457
3593
|
//# sourceMappingURL=crop-care.schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crop-care.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/crop-care.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAWZ,CAAC;AAEjB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAMZ,CAAC;AAEjB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAkCX,CAAC;AAEjB,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"crop-care.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/crop-care.schemas.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAuBf,CAAC;AAEjB,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -51,6 +51,21 @@ export const carePlanSchema = z
|
|
|
51
51
|
.optional(),
|
|
52
52
|
})
|
|
53
53
|
.passthrough();
|
|
54
|
+
export const careAdjustmentSchema = z.object({
|
|
55
|
+
id: z.string(),
|
|
56
|
+
severity: z.enum(['info', 'watch', 'act']),
|
|
57
|
+
title: z.string(),
|
|
58
|
+
detail: z.string(),
|
|
59
|
+
source: z.string(),
|
|
60
|
+
});
|
|
61
|
+
export const careAdjustmentsResponseSchema = z.object({
|
|
62
|
+
crop: z.string().nullable(),
|
|
63
|
+
stage: z.string().nullable(),
|
|
64
|
+
adjustments: z.array(careAdjustmentSchema),
|
|
65
|
+
/** False when no forecast could be loaded, so weather rules were skipped. */
|
|
66
|
+
weatherAvailable: z.boolean(),
|
|
67
|
+
generatedAt: z.string(),
|
|
68
|
+
});
|
|
54
69
|
export const resolvedCareSchema = z
|
|
55
70
|
.object({
|
|
56
71
|
origin: z.enum(['file', 'database', 'generic']),
|
|
@@ -59,5 +74,17 @@ export const resolvedCareSchema = z
|
|
|
59
74
|
day: z.number().nullable(),
|
|
60
75
|
stage: careStageSchema,
|
|
61
76
|
needsDate: z.boolean(),
|
|
77
|
+
assumedTransplant: z.boolean().optional(),
|
|
78
|
+
stageSource: z.enum(['calendar', 'observed']).optional(),
|
|
79
|
+
reviewNote: z.string().optional(),
|
|
80
|
+
adjustments: z
|
|
81
|
+
.array(z.object({
|
|
82
|
+
id: z.string(),
|
|
83
|
+
severity: z.enum(['info', 'watch', 'act']),
|
|
84
|
+
title: z.string(),
|
|
85
|
+
detail: z.string(),
|
|
86
|
+
source: z.string(),
|
|
87
|
+
}))
|
|
88
|
+
.optional(),
|
|
62
89
|
})
|
|
63
90
|
.passthrough();
|