@deepintel-ltd/farmpro-contracts 1.27.3 → 1.27.5

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.
@@ -816,7 +816,424 @@ export declare const poultryClimateSnapshotSchema: z.ZodObject<{
816
816
  };
817
817
  };
818
818
  }>;
819
+ export declare const poultryFlockKpisSchema: z.ZodObject<{
820
+ groupId: z.ZodString;
821
+ name: z.ZodString;
822
+ groupType: z.ZodString;
823
+ currentCount: z.ZodNumber;
824
+ ageDays: z.ZodNullable<z.ZodNumber>;
825
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
826
+ fcr: z.ZodNullable<z.ZodNumber>;
827
+ epef: z.ZodNullable<z.ZodNumber>;
828
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
829
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
830
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
831
+ breedStandard: z.ZodNullable<z.ZodString>;
832
+ nextHint: z.ZodNullable<z.ZodString>;
833
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
834
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
835
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
836
+ groupId: z.ZodString;
837
+ name: z.ZodString;
838
+ groupType: z.ZodString;
839
+ currentCount: z.ZodNumber;
840
+ ageDays: z.ZodNullable<z.ZodNumber>;
841
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
842
+ fcr: z.ZodNullable<z.ZodNumber>;
843
+ epef: z.ZodNullable<z.ZodNumber>;
844
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
845
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
846
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
847
+ breedStandard: z.ZodNullable<z.ZodString>;
848
+ nextHint: z.ZodNullable<z.ZodString>;
849
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
850
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
851
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
852
+ groupId: z.ZodString;
853
+ name: z.ZodString;
854
+ groupType: z.ZodString;
855
+ currentCount: z.ZodNumber;
856
+ ageDays: z.ZodNullable<z.ZodNumber>;
857
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
858
+ fcr: z.ZodNullable<z.ZodNumber>;
859
+ epef: z.ZodNullable<z.ZodNumber>;
860
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
861
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
862
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
863
+ breedStandard: z.ZodNullable<z.ZodString>;
864
+ nextHint: z.ZodNullable<z.ZodString>;
865
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
866
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
867
+ }, z.ZodTypeAny, "passthrough">>;
868
+ export declare const poultryFarmKpisResponseSchema: z.ZodObject<{
869
+ data: z.ZodArray<z.ZodObject<{
870
+ groupId: z.ZodString;
871
+ name: z.ZodString;
872
+ groupType: z.ZodString;
873
+ currentCount: z.ZodNumber;
874
+ ageDays: z.ZodNullable<z.ZodNumber>;
875
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
876
+ fcr: z.ZodNullable<z.ZodNumber>;
877
+ epef: z.ZodNullable<z.ZodNumber>;
878
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
879
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
880
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
881
+ breedStandard: z.ZodNullable<z.ZodString>;
882
+ nextHint: z.ZodNullable<z.ZodString>;
883
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
884
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
885
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
886
+ groupId: z.ZodString;
887
+ name: z.ZodString;
888
+ groupType: z.ZodString;
889
+ currentCount: z.ZodNumber;
890
+ ageDays: z.ZodNullable<z.ZodNumber>;
891
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
892
+ fcr: z.ZodNullable<z.ZodNumber>;
893
+ epef: z.ZodNullable<z.ZodNumber>;
894
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
895
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
896
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
897
+ breedStandard: z.ZodNullable<z.ZodString>;
898
+ nextHint: z.ZodNullable<z.ZodString>;
899
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
900
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
901
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
902
+ groupId: z.ZodString;
903
+ name: z.ZodString;
904
+ groupType: z.ZodString;
905
+ currentCount: z.ZodNumber;
906
+ ageDays: z.ZodNullable<z.ZodNumber>;
907
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
908
+ fcr: z.ZodNullable<z.ZodNumber>;
909
+ epef: z.ZodNullable<z.ZodNumber>;
910
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
911
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
912
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
913
+ breedStandard: z.ZodNullable<z.ZodString>;
914
+ nextHint: z.ZodNullable<z.ZodString>;
915
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
916
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
917
+ }, z.ZodTypeAny, "passthrough">>, "many">;
918
+ }, "strip", z.ZodTypeAny, {
919
+ data: z.objectOutputType<{
920
+ groupId: z.ZodString;
921
+ name: z.ZodString;
922
+ groupType: z.ZodString;
923
+ currentCount: z.ZodNumber;
924
+ ageDays: z.ZodNullable<z.ZodNumber>;
925
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
926
+ fcr: z.ZodNullable<z.ZodNumber>;
927
+ epef: z.ZodNullable<z.ZodNumber>;
928
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
929
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
930
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
931
+ breedStandard: z.ZodNullable<z.ZodString>;
932
+ nextHint: z.ZodNullable<z.ZodString>;
933
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
934
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
935
+ }, z.ZodTypeAny, "passthrough">[];
936
+ }, {
937
+ data: z.objectInputType<{
938
+ groupId: z.ZodString;
939
+ name: z.ZodString;
940
+ groupType: z.ZodString;
941
+ currentCount: z.ZodNumber;
942
+ ageDays: z.ZodNullable<z.ZodNumber>;
943
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
944
+ fcr: z.ZodNullable<z.ZodNumber>;
945
+ epef: z.ZodNullable<z.ZodNumber>;
946
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
947
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
948
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
949
+ breedStandard: z.ZodNullable<z.ZodString>;
950
+ nextHint: z.ZodNullable<z.ZodString>;
951
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
952
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
953
+ }, z.ZodTypeAny, "passthrough">[];
954
+ }>;
819
955
  export declare const poultryRouter: {
956
+ getFarmKpis: {
957
+ pathParams: z.ZodObject<{
958
+ farmId: z.ZodString;
959
+ }, "strip", z.ZodTypeAny, {
960
+ farmId: string;
961
+ }, {
962
+ farmId: string;
963
+ }>;
964
+ summary: "KPIs for all active poultry flocks on a farm";
965
+ method: "GET";
966
+ path: "/farms/:farmId/poultry/kpis";
967
+ responses: {
968
+ 200: z.ZodObject<{
969
+ data: z.ZodArray<z.ZodObject<{
970
+ groupId: z.ZodString;
971
+ name: z.ZodString;
972
+ groupType: z.ZodString;
973
+ currentCount: z.ZodNumber;
974
+ ageDays: z.ZodNullable<z.ZodNumber>;
975
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
976
+ fcr: z.ZodNullable<z.ZodNumber>;
977
+ epef: z.ZodNullable<z.ZodNumber>;
978
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
979
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
980
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
981
+ breedStandard: z.ZodNullable<z.ZodString>;
982
+ nextHint: z.ZodNullable<z.ZodString>;
983
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
984
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
985
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
986
+ groupId: z.ZodString;
987
+ name: z.ZodString;
988
+ groupType: z.ZodString;
989
+ currentCount: z.ZodNumber;
990
+ ageDays: z.ZodNullable<z.ZodNumber>;
991
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
992
+ fcr: z.ZodNullable<z.ZodNumber>;
993
+ epef: z.ZodNullable<z.ZodNumber>;
994
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
995
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
996
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
997
+ breedStandard: z.ZodNullable<z.ZodString>;
998
+ nextHint: z.ZodNullable<z.ZodString>;
999
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
1000
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
1001
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1002
+ groupId: z.ZodString;
1003
+ name: z.ZodString;
1004
+ groupType: z.ZodString;
1005
+ currentCount: z.ZodNumber;
1006
+ ageDays: z.ZodNullable<z.ZodNumber>;
1007
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
1008
+ fcr: z.ZodNullable<z.ZodNumber>;
1009
+ epef: z.ZodNullable<z.ZodNumber>;
1010
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
1011
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
1012
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
1013
+ breedStandard: z.ZodNullable<z.ZodString>;
1014
+ nextHint: z.ZodNullable<z.ZodString>;
1015
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
1016
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
1017
+ }, z.ZodTypeAny, "passthrough">>, "many">;
1018
+ }, "strip", z.ZodTypeAny, {
1019
+ data: z.objectOutputType<{
1020
+ groupId: z.ZodString;
1021
+ name: z.ZodString;
1022
+ groupType: z.ZodString;
1023
+ currentCount: z.ZodNumber;
1024
+ ageDays: z.ZodNullable<z.ZodNumber>;
1025
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
1026
+ fcr: z.ZodNullable<z.ZodNumber>;
1027
+ epef: z.ZodNullable<z.ZodNumber>;
1028
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
1029
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
1030
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
1031
+ breedStandard: z.ZodNullable<z.ZodString>;
1032
+ nextHint: z.ZodNullable<z.ZodString>;
1033
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
1034
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
1035
+ }, z.ZodTypeAny, "passthrough">[];
1036
+ }, {
1037
+ data: z.objectInputType<{
1038
+ groupId: z.ZodString;
1039
+ name: z.ZodString;
1040
+ groupType: z.ZodString;
1041
+ currentCount: z.ZodNumber;
1042
+ ageDays: z.ZodNullable<z.ZodNumber>;
1043
+ hdepPercent: z.ZodNullable<z.ZodNumber>;
1044
+ fcr: z.ZodNullable<z.ZodNumber>;
1045
+ epef: z.ZodNullable<z.ZodNumber>;
1046
+ livabilityPercent: z.ZodNullable<z.ZodNumber>;
1047
+ averageDailyGainG: z.ZodNullable<z.ZodNumber>;
1048
+ averageWeightKg: z.ZodNullable<z.ZodNumber>;
1049
+ breedStandard: z.ZodNullable<z.ZodString>;
1050
+ nextHint: z.ZodNullable<z.ZodString>;
1051
+ suggestedFeedPhase: z.ZodNullable<z.ZodString>;
1052
+ feedDaysRemaining: z.ZodNullable<z.ZodNumber>;
1053
+ }, z.ZodTypeAny, "passthrough">[];
1054
+ }>;
1055
+ 401: z.ZodObject<{
1056
+ errors: z.ZodArray<z.ZodObject<{
1057
+ id: z.ZodOptional<z.ZodString>;
1058
+ links: z.ZodOptional<z.ZodObject<{
1059
+ about: z.ZodOptional<z.ZodString>;
1060
+ }, "strip", z.ZodTypeAny, {
1061
+ about?: string | undefined;
1062
+ }, {
1063
+ about?: string | undefined;
1064
+ }>>;
1065
+ status: z.ZodOptional<z.ZodString>;
1066
+ code: z.ZodOptional<z.ZodString>;
1067
+ title: z.ZodOptional<z.ZodString>;
1068
+ detail: z.ZodOptional<z.ZodString>;
1069
+ source: z.ZodOptional<z.ZodObject<{
1070
+ pointer: z.ZodOptional<z.ZodString>;
1071
+ parameter: z.ZodOptional<z.ZodString>;
1072
+ }, "strip", z.ZodTypeAny, {
1073
+ pointer?: string | undefined;
1074
+ parameter?: string | undefined;
1075
+ }, {
1076
+ pointer?: string | undefined;
1077
+ parameter?: string | undefined;
1078
+ }>>;
1079
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1080
+ }, "strip", z.ZodTypeAny, {
1081
+ status?: string | undefined;
1082
+ code?: string | undefined;
1083
+ id?: string | undefined;
1084
+ links?: {
1085
+ about?: string | undefined;
1086
+ } | undefined;
1087
+ meta?: Record<string, unknown> | undefined;
1088
+ title?: string | undefined;
1089
+ detail?: string | undefined;
1090
+ source?: {
1091
+ pointer?: string | undefined;
1092
+ parameter?: string | undefined;
1093
+ } | undefined;
1094
+ }, {
1095
+ status?: string | undefined;
1096
+ code?: string | undefined;
1097
+ id?: string | undefined;
1098
+ links?: {
1099
+ about?: string | undefined;
1100
+ } | undefined;
1101
+ meta?: Record<string, unknown> | undefined;
1102
+ title?: string | undefined;
1103
+ detail?: string | undefined;
1104
+ source?: {
1105
+ pointer?: string | undefined;
1106
+ parameter?: string | undefined;
1107
+ } | undefined;
1108
+ }>, "many">;
1109
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1110
+ }, "strip", z.ZodTypeAny, {
1111
+ errors: {
1112
+ status?: string | undefined;
1113
+ code?: string | undefined;
1114
+ id?: string | undefined;
1115
+ links?: {
1116
+ about?: string | undefined;
1117
+ } | undefined;
1118
+ meta?: Record<string, unknown> | undefined;
1119
+ title?: string | undefined;
1120
+ detail?: string | undefined;
1121
+ source?: {
1122
+ pointer?: string | undefined;
1123
+ parameter?: string | undefined;
1124
+ } | undefined;
1125
+ }[];
1126
+ meta?: Record<string, unknown> | undefined;
1127
+ }, {
1128
+ errors: {
1129
+ status?: string | undefined;
1130
+ code?: string | undefined;
1131
+ id?: string | undefined;
1132
+ links?: {
1133
+ about?: string | undefined;
1134
+ } | undefined;
1135
+ meta?: Record<string, unknown> | undefined;
1136
+ title?: string | undefined;
1137
+ detail?: string | undefined;
1138
+ source?: {
1139
+ pointer?: string | undefined;
1140
+ parameter?: string | undefined;
1141
+ } | undefined;
1142
+ }[];
1143
+ meta?: Record<string, unknown> | undefined;
1144
+ }>;
1145
+ 404: z.ZodObject<{
1146
+ errors: z.ZodArray<z.ZodObject<{
1147
+ id: z.ZodOptional<z.ZodString>;
1148
+ links: z.ZodOptional<z.ZodObject<{
1149
+ about: z.ZodOptional<z.ZodString>;
1150
+ }, "strip", z.ZodTypeAny, {
1151
+ about?: string | undefined;
1152
+ }, {
1153
+ about?: string | undefined;
1154
+ }>>;
1155
+ status: z.ZodOptional<z.ZodString>;
1156
+ code: z.ZodOptional<z.ZodString>;
1157
+ title: z.ZodOptional<z.ZodString>;
1158
+ detail: z.ZodOptional<z.ZodString>;
1159
+ source: z.ZodOptional<z.ZodObject<{
1160
+ pointer: z.ZodOptional<z.ZodString>;
1161
+ parameter: z.ZodOptional<z.ZodString>;
1162
+ }, "strip", z.ZodTypeAny, {
1163
+ pointer?: string | undefined;
1164
+ parameter?: string | undefined;
1165
+ }, {
1166
+ pointer?: string | undefined;
1167
+ parameter?: string | undefined;
1168
+ }>>;
1169
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1170
+ }, "strip", z.ZodTypeAny, {
1171
+ status?: string | undefined;
1172
+ code?: string | undefined;
1173
+ id?: string | undefined;
1174
+ links?: {
1175
+ about?: string | undefined;
1176
+ } | undefined;
1177
+ meta?: Record<string, unknown> | undefined;
1178
+ title?: string | undefined;
1179
+ detail?: string | undefined;
1180
+ source?: {
1181
+ pointer?: string | undefined;
1182
+ parameter?: string | undefined;
1183
+ } | undefined;
1184
+ }, {
1185
+ status?: string | undefined;
1186
+ code?: string | undefined;
1187
+ id?: string | undefined;
1188
+ links?: {
1189
+ about?: string | undefined;
1190
+ } | undefined;
1191
+ meta?: Record<string, unknown> | undefined;
1192
+ title?: string | undefined;
1193
+ detail?: string | undefined;
1194
+ source?: {
1195
+ pointer?: string | undefined;
1196
+ parameter?: string | undefined;
1197
+ } | undefined;
1198
+ }>, "many">;
1199
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1200
+ }, "strip", z.ZodTypeAny, {
1201
+ errors: {
1202
+ status?: string | undefined;
1203
+ code?: string | undefined;
1204
+ id?: string | undefined;
1205
+ links?: {
1206
+ about?: string | undefined;
1207
+ } | undefined;
1208
+ meta?: Record<string, unknown> | undefined;
1209
+ title?: string | undefined;
1210
+ detail?: string | undefined;
1211
+ source?: {
1212
+ pointer?: string | undefined;
1213
+ parameter?: string | undefined;
1214
+ } | undefined;
1215
+ }[];
1216
+ meta?: Record<string, unknown> | undefined;
1217
+ }, {
1218
+ errors: {
1219
+ status?: string | undefined;
1220
+ code?: string | undefined;
1221
+ id?: string | undefined;
1222
+ links?: {
1223
+ about?: string | undefined;
1224
+ } | undefined;
1225
+ meta?: Record<string, unknown> | undefined;
1226
+ title?: string | undefined;
1227
+ detail?: string | undefined;
1228
+ source?: {
1229
+ pointer?: string | undefined;
1230
+ parameter?: string | undefined;
1231
+ } | undefined;
1232
+ }[];
1233
+ meta?: Record<string, unknown> | undefined;
1234
+ }>;
1235
+ };
1236
+ };
820
1237
  getMarket: {
821
1238
  pathParams: z.ZodObject<{
822
1239
  farmId: z.ZodString;
@@ -3310,6 +3727,8 @@ export declare const poultryRouter: {
3310
3727
  };
3311
3728
  };
3312
3729
  export type PoultryRouter = typeof poultryRouter;
3730
+ export type PoultryFlockKpis = z.infer<typeof poultryFlockKpisSchema>;
3731
+ export type PoultryFarmKpisResponse = z.infer<typeof poultryFarmKpisResponseSchema>;
3313
3732
  export type PoultryMarketSnapshot = z.infer<typeof poultryMarketSnapshotSchema>;
3314
3733
  export type PoultryMarketCommodity = z.infer<typeof poultryMarketCommoditySchema>;
3315
3734
  export type PoultryClimateSnapshot = z.infer<typeof poultryClimateSnapshotSchema>['data'];
@@ -1 +1 @@
1
- {"version":3,"file":"poultry.routes.d.ts","sourceRoot":"","sources":["../../src/routes/poultry.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,8BAA8B,gCAA8B,CAAC;AAE1E,eAAO,MAAM,8BAA8B,2CAAyC,CAAC;AAErF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;EAQpC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMvC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;EAKlC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOtC,CAAC;AAEH,eAAO,MAAM,0BAA0B,6CAA2C,CAAC;AAEnF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB/B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsC,CAAC;AAE9E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;EAOtC,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;EAK3C,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBvC,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2FxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC;AACjD,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC,MAAM,CAAC,CAAC;AACV,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"poultry.routes.d.ts","sourceRoot":"","sources":["../../src/routes/poultry.routes.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsGxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC;AACjD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC,MAAM,CAAC,CAAC;AACV,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -103,7 +103,40 @@ export const poultryClimateSnapshotSchema = z.object({
103
103
  })),
104
104
  }),
105
105
  });
106
+ export const poultryFlockKpisSchema = z
107
+ .object({
108
+ groupId: z.string(),
109
+ name: z.string(),
110
+ groupType: z.string(),
111
+ currentCount: z.number(),
112
+ ageDays: z.number().nullable(),
113
+ hdepPercent: z.number().nullable(),
114
+ fcr: z.number().nullable(),
115
+ epef: z.number().nullable(),
116
+ livabilityPercent: z.number().nullable(),
117
+ averageDailyGainG: z.number().nullable(),
118
+ averageWeightKg: z.number().nullable(),
119
+ breedStandard: z.string().nullable(),
120
+ nextHint: z.string().nullable(),
121
+ suggestedFeedPhase: z.string().nullable(),
122
+ feedDaysRemaining: z.number().nullable(),
123
+ })
124
+ .passthrough();
125
+ export const poultryFarmKpisResponseSchema = z.object({
126
+ data: z.array(poultryFlockKpisSchema),
127
+ });
106
128
  export const poultryRouter = c.router({
129
+ getFarmKpis: {
130
+ method: 'GET',
131
+ path: '/farms/:farmId/poultry/kpis',
132
+ pathParams: z.object({ farmId: z.string().uuid() }),
133
+ responses: {
134
+ 200: poultryFarmKpisResponseSchema,
135
+ 401: jsonApiErrorResponseSchema,
136
+ 404: jsonApiErrorResponseSchema,
137
+ },
138
+ summary: 'KPIs for all active poultry flocks on a farm',
139
+ },
107
140
  getMarket: {
108
141
  method: 'GET',
109
142
  path: '/farms/:farmId/poultry/market',