@deepintel-ltd/farmpro-contracts 1.16.2 → 1.16.4

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.
@@ -2771,6 +2771,11 @@ export declare const monitoringVisualizationRouter: {
2771
2771
  elevation: number;
2772
2772
  }[];
2773
2773
  }>>;
2774
+ source: z.ZodOptional<z.ZodString>;
2775
+ resolutionM: z.ZodOptional<z.ZodNumber>;
2776
+ interpolated: z.ZodOptional<z.ZodBoolean>;
2777
+ trustNote: z.ZodOptional<z.ZodString>;
2778
+ profile: z.ZodOptional<z.ZodUnknown>;
2774
2779
  }, "strip", z.ZodTypeAny, {
2775
2780
  data: {
2776
2781
  resolution: number;
@@ -2791,6 +2796,7 @@ export declare const monitoringVisualizationRouter: {
2791
2796
  unit: "meters";
2792
2797
  mean: number;
2793
2798
  };
2799
+ source?: string | undefined;
2794
2800
  drainagePatterns?: {
2795
2801
  flowDirection: {
2796
2802
  type: "FeatureCollection";
@@ -2802,6 +2808,10 @@ export declare const monitoringVisualizationRouter: {
2802
2808
  elevation: number;
2803
2809
  }[];
2804
2810
  } | undefined;
2811
+ resolutionM?: number | undefined;
2812
+ interpolated?: boolean | undefined;
2813
+ trustNote?: string | undefined;
2814
+ profile?: unknown;
2805
2815
  }, {
2806
2816
  data: {
2807
2817
  resolution: number;
@@ -2822,6 +2832,7 @@ export declare const monitoringVisualizationRouter: {
2822
2832
  unit: "meters";
2823
2833
  mean: number;
2824
2834
  };
2835
+ source?: string | undefined;
2825
2836
  drainagePatterns?: {
2826
2837
  flowDirection: {
2827
2838
  type: "FeatureCollection";
@@ -2833,6 +2844,10 @@ export declare const monitoringVisualizationRouter: {
2833
2844
  elevation: number;
2834
2845
  }[];
2835
2846
  } | undefined;
2847
+ resolutionM?: number | undefined;
2848
+ interpolated?: boolean | undefined;
2849
+ trustNote?: string | undefined;
2850
+ profile?: unknown;
2836
2851
  }>;
2837
2852
  404: z.ZodObject<{
2838
2853
  message: z.ZodString;
@@ -3077,6 +3092,9 @@ export declare const monitoringVisualizationRouter: {
3077
3092
  color: string;
3078
3093
  }>, "many">;
3079
3094
  dataSource: z.ZodString;
3095
+ trustNote: z.ZodOptional<z.ZodString>;
3096
+ resolutionM: z.ZodOptional<z.ZodNumber>;
3097
+ interpolated: z.ZodOptional<z.ZodBoolean>;
3080
3098
  }, "strip", z.ZodTypeAny, {
3081
3099
  fieldId: string;
3082
3100
  imageUrl: string | null;
@@ -3099,6 +3117,9 @@ export declare const monitoringVisualizationRouter: {
3099
3117
  color: string;
3100
3118
  }[];
3101
3119
  dataSource: string;
3120
+ resolutionM?: number | undefined;
3121
+ interpolated?: boolean | undefined;
3122
+ trustNote?: string | undefined;
3102
3123
  }, {
3103
3124
  fieldId: string;
3104
3125
  imageUrl: string | null;
@@ -3121,6 +3142,9 @@ export declare const monitoringVisualizationRouter: {
3121
3142
  color: string;
3122
3143
  }[];
3123
3144
  dataSource: string;
3145
+ resolutionM?: number | undefined;
3146
+ interpolated?: boolean | undefined;
3147
+ trustNote?: string | undefined;
3124
3148
  }>;
3125
3149
  404: z.ZodObject<{
3126
3150
  message: z.ZodString;
@@ -3661,6 +3685,28 @@ export declare const monitoringVisualizationRouter: {
3661
3685
  irrigationConsiderations?: string | undefined;
3662
3686
  frostRiskAreas?: string | undefined;
3663
3687
  }>>;
3688
+ agriculturalSuitability: z.ZodOptional<z.ZodObject<{
3689
+ score: z.ZodNumber;
3690
+ summary: z.ZodString;
3691
+ waterloggingRisk: z.ZodEnum<["low", "medium", "high"]>;
3692
+ erosionRisk: z.ZodEnum<["low", "medium", "high"]>;
3693
+ machineryAccess: z.ZodEnum<["good", "limited", "poor"]>;
3694
+ trustNote: z.ZodString;
3695
+ }, "strip", z.ZodTypeAny, {
3696
+ summary: string;
3697
+ score: number;
3698
+ trustNote: string;
3699
+ waterloggingRisk: "low" | "medium" | "high";
3700
+ erosionRisk: "low" | "medium" | "high";
3701
+ machineryAccess: "poor" | "good" | "limited";
3702
+ }, {
3703
+ summary: string;
3704
+ score: number;
3705
+ trustNote: string;
3706
+ waterloggingRisk: "low" | "medium" | "high";
3707
+ erosionRisk: "low" | "medium" | "high";
3708
+ machineryAccess: "poor" | "good" | "limited";
3709
+ }>>;
3664
3710
  }, "strip", z.ZodTypeAny, {
3665
3711
  fieldId: string;
3666
3712
  imageUrl: string | null;
@@ -3694,6 +3740,14 @@ export declare const monitoringVisualizationRouter: {
3694
3740
  irrigationConsiderations?: string | undefined;
3695
3741
  frostRiskAreas?: string | undefined;
3696
3742
  } | undefined;
3743
+ agriculturalSuitability?: {
3744
+ summary: string;
3745
+ score: number;
3746
+ trustNote: string;
3747
+ waterloggingRisk: "low" | "medium" | "high";
3748
+ erosionRisk: "low" | "medium" | "high";
3749
+ machineryAccess: "poor" | "good" | "limited";
3750
+ } | undefined;
3697
3751
  }, {
3698
3752
  fieldId: string;
3699
3753
  imageUrl: string | null;
@@ -3727,6 +3781,236 @@ export declare const monitoringVisualizationRouter: {
3727
3781
  irrigationConsiderations?: string | undefined;
3728
3782
  frostRiskAreas?: string | undefined;
3729
3783
  } | undefined;
3784
+ agriculturalSuitability?: {
3785
+ summary: string;
3786
+ score: number;
3787
+ trustNote: string;
3788
+ waterloggingRisk: "low" | "medium" | "high";
3789
+ erosionRisk: "low" | "medium" | "high";
3790
+ machineryAccess: "poor" | "good" | "limited";
3791
+ } | undefined;
3792
+ }>;
3793
+ 404: z.ZodObject<{
3794
+ message: z.ZodString;
3795
+ code: z.ZodString;
3796
+ }, "strip", z.ZodTypeAny, {
3797
+ code: string;
3798
+ message: string;
3799
+ }, {
3800
+ code: string;
3801
+ message: string;
3802
+ }>;
3803
+ 503: z.ZodObject<{
3804
+ message: z.ZodString;
3805
+ code: z.ZodString;
3806
+ }, "strip", z.ZodTypeAny, {
3807
+ code: string;
3808
+ message: string;
3809
+ }, {
3810
+ code: string;
3811
+ message: string;
3812
+ }>;
3813
+ };
3814
+ };
3815
+ getFieldTerrainProfile: {
3816
+ query: z.ZodObject<{
3817
+ resolution: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>;
3818
+ }, "strip", z.ZodTypeAny, {
3819
+ resolution: "low" | "medium" | "high";
3820
+ }, {
3821
+ resolution?: "low" | "medium" | "high" | undefined;
3822
+ }>;
3823
+ summary: "Get reusable field terrain profile (DEM-derived summary)";
3824
+ method: "GET";
3825
+ path: "/farms/:farmId/fields/:fieldId/terrain-profile";
3826
+ responses: {
3827
+ 200: z.ZodObject<{
3828
+ fieldId: z.ZodString;
3829
+ farmId: z.ZodOptional<z.ZodString>;
3830
+ source: z.ZodString;
3831
+ resolutionM: z.ZodNumber;
3832
+ sampledAt: z.ZodString;
3833
+ interpolated: z.ZodDefault<z.ZodBoolean>;
3834
+ trustNote: z.ZodString;
3835
+ elevation: z.ZodObject<{
3836
+ min: z.ZodNumber;
3837
+ max: z.ZodNumber;
3838
+ mean: z.ZodNumber;
3839
+ range: z.ZodNumber;
3840
+ unit: z.ZodLiteral<"meters">;
3841
+ }, "strip", z.ZodTypeAny, {
3842
+ min: number;
3843
+ max: number;
3844
+ unit: "meters";
3845
+ mean: number;
3846
+ range: number;
3847
+ }, {
3848
+ min: number;
3849
+ max: number;
3850
+ unit: "meters";
3851
+ mean: number;
3852
+ range: number;
3853
+ }>;
3854
+ slope: z.ZodObject<{
3855
+ medianPct: z.ZodNumber;
3856
+ meanPct: z.ZodNumber;
3857
+ maxPct: z.ZodNumber;
3858
+ percentByClass: z.ZodObject<{
3859
+ flat: z.ZodNumber;
3860
+ gentle: z.ZodNumber;
3861
+ moderate: z.ZodNumber;
3862
+ steep: z.ZodNumber;
3863
+ }, "strip", z.ZodTypeAny, {
3864
+ flat: number;
3865
+ moderate: number;
3866
+ gentle: number;
3867
+ steep: number;
3868
+ }, {
3869
+ flat: number;
3870
+ moderate: number;
3871
+ gentle: number;
3872
+ steep: number;
3873
+ }>;
3874
+ }, "strip", z.ZodTypeAny, {
3875
+ medianPct: number;
3876
+ meanPct: number;
3877
+ maxPct: number;
3878
+ percentByClass: {
3879
+ flat: number;
3880
+ moderate: number;
3881
+ gentle: number;
3882
+ steep: number;
3883
+ };
3884
+ }, {
3885
+ medianPct: number;
3886
+ meanPct: number;
3887
+ maxPct: number;
3888
+ percentByClass: {
3889
+ flat: number;
3890
+ moderate: number;
3891
+ gentle: number;
3892
+ steep: number;
3893
+ };
3894
+ }>;
3895
+ aspect: z.ZodObject<{
3896
+ dominant: z.ZodString;
3897
+ flatPercent: z.ZodNumber;
3898
+ }, "strip", z.ZodTypeAny, {
3899
+ flatPercent: number;
3900
+ dominant: string;
3901
+ }, {
3902
+ flatPercent: number;
3903
+ dominant: string;
3904
+ }>;
3905
+ hydrology: z.ZodObject<{
3906
+ wetnessClass: z.ZodEnum<["low", "moderate", "high"]>;
3907
+ lowPointCount: z.ZodNumber;
3908
+ dominantFlowDirection: z.ZodOptional<z.ZodString>;
3909
+ }, "strip", z.ZodTypeAny, {
3910
+ wetnessClass: "low" | "high" | "moderate";
3911
+ lowPointCount: number;
3912
+ dominantFlowDirection?: string | undefined;
3913
+ }, {
3914
+ wetnessClass: "low" | "high" | "moderate";
3915
+ lowPointCount: number;
3916
+ dominantFlowDirection?: string | undefined;
3917
+ }>;
3918
+ risks: z.ZodObject<{
3919
+ waterloggingRisk: z.ZodEnum<["low", "medium", "high"]>;
3920
+ erosionRisk: z.ZodEnum<["low", "medium", "high"]>;
3921
+ machineryAccess: z.ZodEnum<["good", "limited", "poor"]>;
3922
+ }, "strip", z.ZodTypeAny, {
3923
+ waterloggingRisk: "low" | "medium" | "high";
3924
+ erosionRisk: "low" | "medium" | "high";
3925
+ machineryAccess: "poor" | "good" | "limited";
3926
+ }, {
3927
+ waterloggingRisk: "low" | "medium" | "high";
3928
+ erosionRisk: "low" | "medium" | "high";
3929
+ machineryAccess: "poor" | "good" | "limited";
3930
+ }>;
3931
+ insights: z.ZodArray<z.ZodString, "many">;
3932
+ }, "strip", z.ZodTypeAny, {
3933
+ source: string;
3934
+ fieldId: string;
3935
+ risks: {
3936
+ waterloggingRisk: "low" | "medium" | "high";
3937
+ erosionRisk: "low" | "medium" | "high";
3938
+ machineryAccess: "poor" | "good" | "limited";
3939
+ };
3940
+ elevation: {
3941
+ min: number;
3942
+ max: number;
3943
+ unit: "meters";
3944
+ mean: number;
3945
+ range: number;
3946
+ };
3947
+ resolutionM: number;
3948
+ interpolated: boolean;
3949
+ trustNote: string;
3950
+ slope: {
3951
+ medianPct: number;
3952
+ meanPct: number;
3953
+ maxPct: number;
3954
+ percentByClass: {
3955
+ flat: number;
3956
+ moderate: number;
3957
+ gentle: number;
3958
+ steep: number;
3959
+ };
3960
+ };
3961
+ sampledAt: string;
3962
+ aspect: {
3963
+ flatPercent: number;
3964
+ dominant: string;
3965
+ };
3966
+ hydrology: {
3967
+ wetnessClass: "low" | "high" | "moderate";
3968
+ lowPointCount: number;
3969
+ dominantFlowDirection?: string | undefined;
3970
+ };
3971
+ insights: string[];
3972
+ farmId?: string | undefined;
3973
+ }, {
3974
+ source: string;
3975
+ fieldId: string;
3976
+ risks: {
3977
+ waterloggingRisk: "low" | "medium" | "high";
3978
+ erosionRisk: "low" | "medium" | "high";
3979
+ machineryAccess: "poor" | "good" | "limited";
3980
+ };
3981
+ elevation: {
3982
+ min: number;
3983
+ max: number;
3984
+ unit: "meters";
3985
+ mean: number;
3986
+ range: number;
3987
+ };
3988
+ resolutionM: number;
3989
+ trustNote: string;
3990
+ slope: {
3991
+ medianPct: number;
3992
+ meanPct: number;
3993
+ maxPct: number;
3994
+ percentByClass: {
3995
+ flat: number;
3996
+ moderate: number;
3997
+ gentle: number;
3998
+ steep: number;
3999
+ };
4000
+ };
4001
+ sampledAt: string;
4002
+ aspect: {
4003
+ flatPercent: number;
4004
+ dominant: string;
4005
+ };
4006
+ hydrology: {
4007
+ wetnessClass: "low" | "high" | "moderate";
4008
+ lowPointCount: number;
4009
+ dominantFlowDirection?: string | undefined;
4010
+ };
4011
+ insights: string[];
4012
+ farmId?: string | undefined;
4013
+ interpolated?: boolean | undefined;
3730
4014
  }>;
3731
4015
  404: z.ZodObject<{
3732
4016
  message: 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;AAqExB,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0gBxC,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,OAAO,6BAA6B,CAAC"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyhBxC,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,OAAO,6BAA6B,CAAC"}
@@ -19,6 +19,7 @@ changeDetectionRequestSchema, changeDetectionResponseSchema,
19
19
  vegetationIndexTypeSchema, vegetationIndexQuerySchema, vegetationIndexResponseSchema, availableIndicesResponseSchema,
20
20
  // Common schemas
21
21
  visualizationErrorSchema, } from '../schemas/monitoring-visualization.schemas';
22
+ import { fieldTerrainProfileResponseSchema } from '../schemas/terrain-profile.schemas';
22
23
  const c = initContract();
23
24
  export const monitoringVisualizationRouter = c.router({
24
25
  // ============================================================================
@@ -418,6 +419,20 @@ export const monitoringVisualizationRouter = c.router({
418
419
  },
419
420
  summary: 'Get aspect (slope direction) analysis for field',
420
421
  },
422
+ /**
423
+ * Stable FieldTerrainProfile for any consumer (crop rec, yield, planner, Farm Brain)
424
+ */
425
+ getFieldTerrainProfile: {
426
+ method: 'GET',
427
+ path: '/farms/:farmId/fields/:fieldId/terrain-profile',
428
+ query: terrainQuerySchema,
429
+ responses: {
430
+ 200: fieldTerrainProfileResponseSchema,
431
+ 404: visualizationErrorSchema,
432
+ 503: visualizationErrorSchema,
433
+ },
434
+ summary: 'Get reusable field terrain profile (DEM-derived summary)',
435
+ },
421
436
  /**
422
437
  * Get drainage analysis
423
438
  * Returns water flow direction, low points, and watersheds
@@ -168,6 +168,10 @@ export declare const fieldAlertSchema: z.ZodObject<{
168
168
  estimatedTime?: string | undefined;
169
169
  riskLevel?: string | undefined;
170
170
  }>, "many">>;
171
+ /** Whether the farmer should act (create task / irrigate / scout). */
172
+ actionRequired: z.ZodOptional<z.ZodBoolean>;
173
+ /** Plain-language next step for task creation CTAs. */
174
+ suggestedAction: z.ZodOptional<z.ZodNullable<z.ZodString>>;
171
175
  status: z.ZodEnum<["active", "acknowledged", "resolved"]>;
172
176
  acknowledgedAt: z.ZodNullable<z.ZodString>;
173
177
  acknowledgedBy: z.ZodNullable<z.ZodString>;
@@ -216,6 +220,8 @@ export declare const fieldAlertSchema: z.ZodObject<{
216
220
  resolvedAt: string | null;
217
221
  generatedBy: string;
218
222
  fieldName?: string | undefined;
223
+ actionRequired?: boolean | undefined;
224
+ suggestedAction?: string | null | undefined;
219
225
  }, {
220
226
  type: string;
221
227
  status: "active" | "acknowledged" | "resolved";
@@ -255,6 +261,8 @@ export declare const fieldAlertSchema: z.ZodObject<{
255
261
  resolvedAt: string | null;
256
262
  generatedBy: string;
257
263
  fieldName?: string | undefined;
264
+ actionRequired?: boolean | undefined;
265
+ suggestedAction?: string | null | undefined;
258
266
  }>;
259
267
  export type FieldAlert = z.infer<typeof fieldAlertSchema>;
260
268
  export declare const fieldComparisonSchema: z.ZodObject<{
@@ -417,6 +425,10 @@ export declare const bulkReadAlertsResponseSchema: z.ZodObject<{
417
425
  estimatedTime?: string | undefined;
418
426
  riskLevel?: string | undefined;
419
427
  }>, "many">>;
428
+ /** Whether the farmer should act (create task / irrigate / scout). */
429
+ actionRequired: z.ZodOptional<z.ZodBoolean>;
430
+ /** Plain-language next step for task creation CTAs. */
431
+ suggestedAction: z.ZodOptional<z.ZodNullable<z.ZodString>>;
420
432
  status: z.ZodEnum<["active", "acknowledged", "resolved"]>;
421
433
  acknowledgedAt: z.ZodNullable<z.ZodString>;
422
434
  acknowledgedBy: z.ZodNullable<z.ZodString>;
@@ -465,6 +477,8 @@ export declare const bulkReadAlertsResponseSchema: z.ZodObject<{
465
477
  resolvedAt: string | null;
466
478
  generatedBy: string;
467
479
  fieldName?: string | undefined;
480
+ actionRequired?: boolean | undefined;
481
+ suggestedAction?: string | null | undefined;
468
482
  }, {
469
483
  type: string;
470
484
  status: "active" | "acknowledged" | "resolved";
@@ -504,6 +518,8 @@ export declare const bulkReadAlertsResponseSchema: z.ZodObject<{
504
518
  resolvedAt: string | null;
505
519
  generatedBy: string;
506
520
  fieldName?: string | undefined;
521
+ actionRequired?: boolean | undefined;
522
+ suggestedAction?: string | null | undefined;
507
523
  }>, "many">;
508
524
  }, "strip", z.ZodTypeAny, {
509
525
  alerts: {
@@ -545,6 +561,8 @@ export declare const bulkReadAlertsResponseSchema: z.ZodObject<{
545
561
  resolvedAt: string | null;
546
562
  generatedBy: string;
547
563
  fieldName?: string | undefined;
564
+ actionRequired?: boolean | undefined;
565
+ suggestedAction?: string | null | undefined;
548
566
  }[];
549
567
  updated: number;
550
568
  }, {
@@ -587,6 +605,8 @@ export declare const bulkReadAlertsResponseSchema: z.ZodObject<{
587
605
  resolvedAt: string | null;
588
606
  generatedBy: string;
589
607
  fieldName?: string | undefined;
608
+ actionRequired?: boolean | undefined;
609
+ suggestedAction?: string | null | undefined;
590
610
  }[];
591
611
  updated: number;
592
612
  }>;
@@ -1 +1 @@
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"}
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"}
@@ -45,6 +45,10 @@ export const fieldAlertSchema = z.object({
45
45
  title: z.string(),
46
46
  message: z.string(),
47
47
  recommendations: z.array(recommendationSchema).nullable(),
48
+ /** Whether the farmer should act (create task / irrigate / scout). */
49
+ actionRequired: z.boolean().optional(),
50
+ /** Plain-language next step for task creation CTAs. */
51
+ suggestedAction: z.string().nullable().optional(),
48
52
  status: z.enum(['active', 'acknowledged', 'resolved']),
49
53
  acknowledgedAt: z.string().datetime().nullable(),
50
54
  acknowledgedBy: z.string().nullable(),