@deepintel-ltd/farmpro-contracts 1.7.6 → 1.7.9
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/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/routes/crop-profile.routes.d.ts +556 -0
- package/dist/routes/crop-profile.routes.d.ts.map +1 -0
- package/dist/routes/crop-profile.routes.js +55 -0
- package/dist/routes/geofences.routes.d.ts +1913 -0
- package/dist/routes/geofences.routes.d.ts.map +1 -0
- package/dist/routes/geofences.routes.js +105 -0
- package/dist/routes/index.d.ts +15 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +10 -0
- package/dist/routes/livestock-map.routes.d.ts +1319 -0
- package/dist/routes/livestock-map.routes.d.ts.map +1 -0
- package/dist/routes/livestock-map.routes.js +83 -0
- package/dist/routes/measurements.routes.d.ts +1081 -0
- package/dist/routes/measurements.routes.d.ts.map +1 -0
- package/dist/routes/measurements.routes.js +69 -0
- package/dist/routes/monitoring-visualization.routes.d.ts +1637 -0
- package/dist/routes/monitoring-visualization.routes.d.ts.map +1 -1
- package/dist/routes/monitoring-visualization.routes.js +153 -0
- package/dist/routes/prescription-maps.routes.d.ts +3092 -0
- package/dist/routes/prescription-maps.routes.d.ts.map +1 -0
- package/dist/routes/prescription-maps.routes.js +143 -0
- package/dist/schemas/crop-profile.schemas.d.ts +724 -0
- package/dist/schemas/crop-profile.schemas.d.ts.map +1 -0
- package/dist/schemas/crop-profile.schemas.js +84 -0
- package/dist/schemas/geofences.schemas.d.ts +358 -0
- package/dist/schemas/geofences.schemas.d.ts.map +1 -0
- package/dist/schemas/geofences.schemas.js +44 -0
- package/dist/schemas/livestock-map.schemas.d.ts +328 -0
- package/dist/schemas/livestock-map.schemas.d.ts.map +1 -0
- package/dist/schemas/livestock-map.schemas.js +52 -0
- package/dist/schemas/measurements.schemas.d.ts +234 -0
- package/dist/schemas/measurements.schemas.d.ts.map +1 -0
- package/dist/schemas/measurements.schemas.js +57 -0
- package/dist/schemas/monitoring-visualization.schemas.d.ts +1703 -0
- package/dist/schemas/monitoring-visualization.schemas.d.ts.map +1 -1
- package/dist/schemas/monitoring-visualization.schemas.js +338 -0
- package/dist/schemas/prescription-maps.schemas.d.ts +974 -0
- package/dist/schemas/prescription-maps.schemas.d.ts.map +1 -0
- package/dist/schemas/prescription-maps.schemas.js +132 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitoring-visualization.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/monitoring-visualization.schemas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"monitoring-visualization.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/monitoring-visualization.schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -568,6 +568,262 @@ export const terrainResponseSchema = z.object({
|
|
|
568
568
|
.optional(),
|
|
569
569
|
});
|
|
570
570
|
// ============================================================================
|
|
571
|
+
// Phase 5: Enhanced Terrain Schemas (Contours, Slope, Aspect, Drainage)
|
|
572
|
+
// ============================================================================
|
|
573
|
+
// Elevation heatmap query and response
|
|
574
|
+
export const elevationHeatmapQuerySchema = z.object({
|
|
575
|
+
resolution: z.enum(['low', 'medium', 'high']).default('medium'),
|
|
576
|
+
palette: z.enum(['terrain', 'viridis', 'grayscale', 'rainbow']).default('terrain'),
|
|
577
|
+
});
|
|
578
|
+
export const elevationHeatmapResponseSchema = z.object({
|
|
579
|
+
fieldId: z.string().uuid(),
|
|
580
|
+
imageUrl: z.string().url().nullable(),
|
|
581
|
+
bounds: z.object({
|
|
582
|
+
north: z.number(),
|
|
583
|
+
south: z.number(),
|
|
584
|
+
east: z.number(),
|
|
585
|
+
west: z.number(),
|
|
586
|
+
}),
|
|
587
|
+
statistics: z.object({
|
|
588
|
+
min: z.number(),
|
|
589
|
+
max: z.number(),
|
|
590
|
+
mean: z.number(),
|
|
591
|
+
range: z.number(),
|
|
592
|
+
unit: z.literal('meters'),
|
|
593
|
+
}),
|
|
594
|
+
colorScale: z.array(z.object({
|
|
595
|
+
value: z.number(),
|
|
596
|
+
color: z.string(),
|
|
597
|
+
label: z.string(),
|
|
598
|
+
})),
|
|
599
|
+
dataSource: z.string(),
|
|
600
|
+
});
|
|
601
|
+
// Contour lines query and response
|
|
602
|
+
export const contourQuerySchema = z.object({
|
|
603
|
+
interval: z.string()
|
|
604
|
+
.transform(Number)
|
|
605
|
+
.pipe(z.number().min(0.5).max(50))
|
|
606
|
+
.default('5'), // meters between contour lines
|
|
607
|
+
minElevation: z.string()
|
|
608
|
+
.transform(Number)
|
|
609
|
+
.pipe(z.number())
|
|
610
|
+
.optional(),
|
|
611
|
+
maxElevation: z.string()
|
|
612
|
+
.transform(Number)
|
|
613
|
+
.pipe(z.number())
|
|
614
|
+
.optional(),
|
|
615
|
+
});
|
|
616
|
+
export const contourLineSchema = z.object({
|
|
617
|
+
elevation: z.number(),
|
|
618
|
+
geometry: z.object({
|
|
619
|
+
type: z.literal('LineString'),
|
|
620
|
+
coordinates: z.array(z.tuple([z.number(), z.number()])), // [lng, lat][]
|
|
621
|
+
}),
|
|
622
|
+
isMajor: z.boolean(), // Every 5th line is major (thicker)
|
|
623
|
+
length: z.number(), // meters
|
|
624
|
+
});
|
|
625
|
+
export const contourResponseSchema = z.object({
|
|
626
|
+
fieldId: z.string().uuid(),
|
|
627
|
+
interval: z.number(),
|
|
628
|
+
contours: z.array(contourLineSchema),
|
|
629
|
+
statistics: z.object({
|
|
630
|
+
minElevation: z.number(),
|
|
631
|
+
maxElevation: z.number(),
|
|
632
|
+
totalContours: z.number(),
|
|
633
|
+
majorContours: z.number(),
|
|
634
|
+
}),
|
|
635
|
+
geojson: z.object({
|
|
636
|
+
type: z.literal('FeatureCollection'),
|
|
637
|
+
features: z.array(z.object({
|
|
638
|
+
type: z.literal('Feature'),
|
|
639
|
+
geometry: z.object({
|
|
640
|
+
type: z.literal('LineString'),
|
|
641
|
+
coordinates: z.array(z.tuple([z.number(), z.number()])),
|
|
642
|
+
}),
|
|
643
|
+
properties: z.object({
|
|
644
|
+
elevation: z.number(),
|
|
645
|
+
isMajor: z.boolean(),
|
|
646
|
+
}),
|
|
647
|
+
})),
|
|
648
|
+
}),
|
|
649
|
+
});
|
|
650
|
+
// Slope analysis query and response
|
|
651
|
+
export const slopeQuerySchema = z.object({
|
|
652
|
+
unit: z.enum(['percent', 'degrees']).default('percent'),
|
|
653
|
+
resolution: z.enum(['low', 'medium', 'high']).default('medium'),
|
|
654
|
+
});
|
|
655
|
+
export const slopeClassSchema = z.object({
|
|
656
|
+
class: z.enum(['flat', 'gentle', 'moderate', 'steep', 'very_steep']),
|
|
657
|
+
minSlope: z.number(),
|
|
658
|
+
maxSlope: z.number(),
|
|
659
|
+
areaHectares: z.number(),
|
|
660
|
+
areaPercent: z.number(),
|
|
661
|
+
color: z.string(),
|
|
662
|
+
description: z.string(),
|
|
663
|
+
});
|
|
664
|
+
export const slopeResponseSchema = z.object({
|
|
665
|
+
fieldId: z.string().uuid(),
|
|
666
|
+
unit: z.enum(['percent', 'degrees']),
|
|
667
|
+
imageUrl: z.string().url().nullable(),
|
|
668
|
+
bounds: z.object({
|
|
669
|
+
north: z.number(),
|
|
670
|
+
south: z.number(),
|
|
671
|
+
east: z.number(),
|
|
672
|
+
west: z.number(),
|
|
673
|
+
}),
|
|
674
|
+
statistics: z.object({
|
|
675
|
+
min: z.number(),
|
|
676
|
+
max: z.number(),
|
|
677
|
+
mean: z.number(),
|
|
678
|
+
stdDev: z.number(),
|
|
679
|
+
}),
|
|
680
|
+
classification: z.array(slopeClassSchema),
|
|
681
|
+
colorScale: z.array(z.object({
|
|
682
|
+
value: z.number(),
|
|
683
|
+
color: z.string(),
|
|
684
|
+
label: z.string(),
|
|
685
|
+
})),
|
|
686
|
+
recommendations: z.array(z.object({
|
|
687
|
+
slopeClass: z.string(),
|
|
688
|
+
recommendation: z.string(),
|
|
689
|
+
risk: z.enum(['low', 'medium', 'high']),
|
|
690
|
+
})).optional(),
|
|
691
|
+
});
|
|
692
|
+
// Aspect (slope direction) query and response
|
|
693
|
+
export const aspectQuerySchema = z.object({
|
|
694
|
+
resolution: z.enum(['low', 'medium', 'high']).default('medium'),
|
|
695
|
+
});
|
|
696
|
+
export const aspectClassSchema = z.object({
|
|
697
|
+
direction: z.enum(['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW', 'flat']),
|
|
698
|
+
minDegrees: z.number(),
|
|
699
|
+
maxDegrees: z.number(),
|
|
700
|
+
areaHectares: z.number(),
|
|
701
|
+
areaPercent: z.number(),
|
|
702
|
+
color: z.string(),
|
|
703
|
+
sunExposure: z.enum(['high', 'medium', 'low']),
|
|
704
|
+
});
|
|
705
|
+
export const aspectResponseSchema = z.object({
|
|
706
|
+
fieldId: z.string().uuid(),
|
|
707
|
+
imageUrl: z.string().url().nullable(),
|
|
708
|
+
bounds: z.object({
|
|
709
|
+
north: z.number(),
|
|
710
|
+
south: z.number(),
|
|
711
|
+
east: z.number(),
|
|
712
|
+
west: z.number(),
|
|
713
|
+
}),
|
|
714
|
+
statistics: z.object({
|
|
715
|
+
dominantDirection: z.enum(['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW', 'flat']),
|
|
716
|
+
dominantPercent: z.number(),
|
|
717
|
+
flatPercent: z.number(), // Areas with no slope
|
|
718
|
+
}),
|
|
719
|
+
classification: z.array(aspectClassSchema),
|
|
720
|
+
colorWheel: z.array(z.object({
|
|
721
|
+
direction: z.string(),
|
|
722
|
+
degrees: z.number(),
|
|
723
|
+
color: z.string(),
|
|
724
|
+
})),
|
|
725
|
+
recommendations: z.object({
|
|
726
|
+
bestForCrops: z.array(z.string()),
|
|
727
|
+
irrigationConsiderations: z.string().optional(),
|
|
728
|
+
frostRiskAreas: z.string().optional(),
|
|
729
|
+
}).optional(),
|
|
730
|
+
});
|
|
731
|
+
// Drainage flow analysis query and response
|
|
732
|
+
export const drainageQuerySchema = z.object({
|
|
733
|
+
resolution: z.enum(['low', 'medium', 'high']).default('medium'),
|
|
734
|
+
includeWatersheds: z.string()
|
|
735
|
+
.transform((v) => v === 'true')
|
|
736
|
+
.default('false'),
|
|
737
|
+
includeFlowAccumulation: z.string()
|
|
738
|
+
.transform((v) => v === 'true')
|
|
739
|
+
.default('true'),
|
|
740
|
+
});
|
|
741
|
+
export const flowArrowSchema = z.object({
|
|
742
|
+
startPoint: coordinateSchema,
|
|
743
|
+
endPoint: coordinateSchema,
|
|
744
|
+
flowIntensity: z.enum(['low', 'medium', 'high']),
|
|
745
|
+
bearing: z.number(), // degrees
|
|
746
|
+
});
|
|
747
|
+
export const lowPointSchema = z.object({
|
|
748
|
+
id: z.string(),
|
|
749
|
+
location: coordinateSchema,
|
|
750
|
+
elevation: z.number(),
|
|
751
|
+
contributingArea: z.number(), // hectares draining to this point
|
|
752
|
+
riskLevel: z.enum(['low', 'medium', 'high']),
|
|
753
|
+
description: z.string(),
|
|
754
|
+
});
|
|
755
|
+
export const watershedSchema = z.object({
|
|
756
|
+
id: z.string(),
|
|
757
|
+
geometry: geoJsonPolygonSchema,
|
|
758
|
+
areaHectares: z.number(),
|
|
759
|
+
outletPoint: coordinateSchema,
|
|
760
|
+
flowDirection: z.enum(['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW']),
|
|
761
|
+
color: z.string(),
|
|
762
|
+
});
|
|
763
|
+
export const drainageResponseSchema = z.object({
|
|
764
|
+
fieldId: z.string().uuid(),
|
|
765
|
+
bounds: z.object({
|
|
766
|
+
north: z.number(),
|
|
767
|
+
south: z.number(),
|
|
768
|
+
east: z.number(),
|
|
769
|
+
west: z.number(),
|
|
770
|
+
}),
|
|
771
|
+
flowArrows: z.array(flowArrowSchema),
|
|
772
|
+
lowPoints: z.array(lowPointSchema),
|
|
773
|
+
watersheds: z.array(watershedSchema).optional(),
|
|
774
|
+
flowAccumulationImageUrl: z.string().url().nullable(),
|
|
775
|
+
statistics: z.object({
|
|
776
|
+
totalLowPoints: z.number(),
|
|
777
|
+
highRiskLowPoints: z.number(),
|
|
778
|
+
dominantFlowDirection: z.enum(['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW']),
|
|
779
|
+
estimatedWaterloggingRisk: z.enum(['low', 'medium', 'high']),
|
|
780
|
+
}),
|
|
781
|
+
recommendations: z.array(z.object({
|
|
782
|
+
type: z.enum(['drainage_channel', 'pond', 'berm', 'terrace', 'general']),
|
|
783
|
+
location: coordinateSchema.optional(),
|
|
784
|
+
description: z.string(),
|
|
785
|
+
priority: z.enum(['low', 'medium', 'high']),
|
|
786
|
+
})),
|
|
787
|
+
});
|
|
788
|
+
// Elevation profile (cross-section) query and response
|
|
789
|
+
export const elevationProfileQuerySchema = z.object({
|
|
790
|
+
startLat: z.string().transform(Number).pipe(z.number().min(-90).max(90)),
|
|
791
|
+
startLng: z.string().transform(Number).pipe(z.number().min(-180).max(180)),
|
|
792
|
+
endLat: z.string().transform(Number).pipe(z.number().min(-90).max(90)),
|
|
793
|
+
endLng: z.string().transform(Number).pipe(z.number().min(-180).max(180)),
|
|
794
|
+
samplePoints: z.string()
|
|
795
|
+
.transform(Number)
|
|
796
|
+
.pipe(z.number().min(10).max(500))
|
|
797
|
+
.default('100'),
|
|
798
|
+
});
|
|
799
|
+
export const elevationProfilePointSchema = z.object({
|
|
800
|
+
distance: z.number(), // meters from start
|
|
801
|
+
elevation: z.number(), // meters
|
|
802
|
+
lat: z.number(),
|
|
803
|
+
lng: z.number(),
|
|
804
|
+
slope: z.number(), // percent to next point
|
|
805
|
+
});
|
|
806
|
+
export const elevationProfileResponseSchema = z.object({
|
|
807
|
+
fieldId: z.string().uuid(),
|
|
808
|
+
profile: z.array(elevationProfilePointSchema),
|
|
809
|
+
statistics: z.object({
|
|
810
|
+
totalDistance: z.number(),
|
|
811
|
+
elevationGain: z.number(),
|
|
812
|
+
elevationLoss: z.number(),
|
|
813
|
+
netElevationChange: z.number(),
|
|
814
|
+
maxElevation: z.number(),
|
|
815
|
+
minElevation: z.number(),
|
|
816
|
+
averageSlope: z.number(),
|
|
817
|
+
}),
|
|
818
|
+
keyPoints: z.array(z.object({
|
|
819
|
+
type: z.enum(['high_point', 'low_point', 'steep_section', 'flat_section']),
|
|
820
|
+
location: coordinateSchema,
|
|
821
|
+
distance: z.number(),
|
|
822
|
+
elevation: z.number(),
|
|
823
|
+
description: z.string(),
|
|
824
|
+
})),
|
|
825
|
+
});
|
|
826
|
+
// ============================================================================
|
|
571
827
|
// Phase 5: Growth Stage Schemas
|
|
572
828
|
// ============================================================================
|
|
573
829
|
export const growthStageTimelineSchema = z.object({
|
|
@@ -602,3 +858,85 @@ export const growthStagesResponseSchema = z.object({
|
|
|
602
858
|
currentIcon: z.string(),
|
|
603
859
|
}),
|
|
604
860
|
});
|
|
861
|
+
// ============================================================================
|
|
862
|
+
// Change Detection Schemas
|
|
863
|
+
// ============================================================================
|
|
864
|
+
export const changeDetectionRequestSchema = z.object({
|
|
865
|
+
dateA: z.string().datetime(),
|
|
866
|
+
dateB: z.string().datetime(),
|
|
867
|
+
threshold: z.number().min(0).max(1).default(0.1), // 10% change threshold
|
|
868
|
+
});
|
|
869
|
+
export const changeHotspotSchema = z.object({
|
|
870
|
+
geometry: geoJsonPolygonSchema,
|
|
871
|
+
changePercent: z.number(),
|
|
872
|
+
previousValue: z.number(),
|
|
873
|
+
currentValue: z.number(),
|
|
874
|
+
areaHectares: z.number(),
|
|
875
|
+
suggestedAction: z.string().optional(),
|
|
876
|
+
});
|
|
877
|
+
export const changeDetectionResponseSchema = z.object({
|
|
878
|
+
overallChange: z.number(), // Percentage change
|
|
879
|
+
affectedArea: z.number(), // Hectares with significant change
|
|
880
|
+
totalArea: z.number(),
|
|
881
|
+
classification: z.enum(['improvement', 'decline', 'stable']),
|
|
882
|
+
hotspots: z.array(changeHotspotSchema),
|
|
883
|
+
dateA: z.string(),
|
|
884
|
+
dateB: z.string(),
|
|
885
|
+
});
|
|
886
|
+
// ============================================================================
|
|
887
|
+
// Phase 6: Vegetation Indices Schemas
|
|
888
|
+
// ============================================================================
|
|
889
|
+
export const vegetationIndexTypeSchema = z.enum([
|
|
890
|
+
'ndvi',
|
|
891
|
+
'ndre',
|
|
892
|
+
'msavi',
|
|
893
|
+
'savi',
|
|
894
|
+
'evi',
|
|
895
|
+
'gndvi',
|
|
896
|
+
'lai',
|
|
897
|
+
'ndwi',
|
|
898
|
+
]);
|
|
899
|
+
export const vegetationIndexQuerySchema = z.object({
|
|
900
|
+
date: z.string().datetime().optional(),
|
|
901
|
+
palette: z
|
|
902
|
+
.enum(['standard', 'contrasting', 'viridis', 'grayscale'])
|
|
903
|
+
.default('standard'),
|
|
904
|
+
});
|
|
905
|
+
export const vegetationIndexResponseSchema = z.object({
|
|
906
|
+
index: vegetationIndexTypeSchema,
|
|
907
|
+
imageUrl: z.string().url().nullable(),
|
|
908
|
+
bounds: z.object({
|
|
909
|
+
north: z.number(),
|
|
910
|
+
south: z.number(),
|
|
911
|
+
east: z.number(),
|
|
912
|
+
west: z.number(),
|
|
913
|
+
}),
|
|
914
|
+
statistics: z.object({
|
|
915
|
+
min: z.number(),
|
|
916
|
+
max: z.number(),
|
|
917
|
+
mean: z.number(),
|
|
918
|
+
median: z.number().nullable(),
|
|
919
|
+
stdDev: z.number().nullable(),
|
|
920
|
+
histogram: z
|
|
921
|
+
.array(z.object({ bin: z.number(), count: z.number() }))
|
|
922
|
+
.optional(),
|
|
923
|
+
}),
|
|
924
|
+
colorPalette: z.array(z.string()),
|
|
925
|
+
valueRange: z.tuple([z.number(), z.number()]),
|
|
926
|
+
date: z.string(),
|
|
927
|
+
dataSource: z.string(),
|
|
928
|
+
});
|
|
929
|
+
export const indexMetadataSchema = z.object({
|
|
930
|
+
type: vegetationIndexTypeSchema,
|
|
931
|
+
name: z.string(),
|
|
932
|
+
description: z.string(),
|
|
933
|
+
bestUseCase: z.string(),
|
|
934
|
+
recommendedGrowthStage: z.string(),
|
|
935
|
+
available: z.boolean(),
|
|
936
|
+
formula: z.string().optional(),
|
|
937
|
+
});
|
|
938
|
+
export const availableIndicesResponseSchema = z.object({
|
|
939
|
+
indices: z.array(indexMetadataSchema),
|
|
940
|
+
recommendedIndex: vegetationIndexTypeSchema.nullable(),
|
|
941
|
+
recommendationReason: z.string().nullable(),
|
|
942
|
+
});
|