@deepintel-ltd/farmpro-contracts 1.30.0 → 1.32.0

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.
Files changed (54) hide show
  1. package/dist/index.d.ts +3 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -0
  4. package/dist/routes/auth.routes.d.ts +753 -0
  5. package/dist/routes/auth.routes.d.ts.map +1 -1
  6. package/dist/routes/auth.routes.js +25 -1
  7. package/dist/routes/field-monitoring.routes.d.ts +3 -0
  8. package/dist/routes/field-monitoring.routes.d.ts.map +1 -1
  9. package/dist/routes/finance.routes.d.ts +4 -0
  10. package/dist/routes/finance.routes.d.ts.map +1 -1
  11. package/dist/routes/finance.routes.js +5 -0
  12. package/dist/routes/index.d.ts +3 -0
  13. package/dist/routes/index.d.ts.map +1 -1
  14. package/dist/routes/index.js +2 -0
  15. package/dist/routes/integrations.routes.d.ts +4500 -0
  16. package/dist/routes/integrations.routes.d.ts.map +1 -0
  17. package/dist/routes/integrations.routes.js +189 -0
  18. package/dist/routes/invoices.routes.d.ts +210 -0
  19. package/dist/routes/invoices.routes.d.ts.map +1 -1
  20. package/dist/routes/market-intelligence.routes.d.ts +670 -0
  21. package/dist/routes/market-intelligence.routes.d.ts.map +1 -1
  22. package/dist/routes/market-intelligence.routes.js +52 -0
  23. package/dist/routes/poultry.routes.d.ts +14 -14
  24. package/dist/routes/subscriptions.routes.d.ts +369 -0
  25. package/dist/routes/subscriptions.routes.d.ts.map +1 -1
  26. package/dist/routes/subscriptions.routes.js +22 -1
  27. package/dist/routes/trade-cash-events.routes.d.ts +121 -31
  28. package/dist/routes/trade-cash-events.routes.d.ts.map +1 -1
  29. package/dist/routes/users.routes.d.ts +280 -0
  30. package/dist/routes/users.routes.d.ts.map +1 -1
  31. package/dist/routes/users.routes.js +14 -0
  32. package/dist/schemas/auth.schemas.d.ts +75 -0
  33. package/dist/schemas/auth.schemas.d.ts.map +1 -1
  34. package/dist/schemas/auth.schemas.js +21 -0
  35. package/dist/schemas/farm-enterprises.schemas.d.ts +1 -1
  36. package/dist/schemas/farm-enterprises.schemas.d.ts.map +1 -1
  37. package/dist/schemas/farm-enterprises.schemas.js +1 -1
  38. package/dist/schemas/field-monitoring.schemas.d.ts +4 -0
  39. package/dist/schemas/field-monitoring.schemas.d.ts.map +1 -1
  40. package/dist/schemas/field-monitoring.schemas.js +2 -0
  41. package/dist/schemas/integrations.schemas.d.ts +717 -0
  42. package/dist/schemas/integrations.schemas.d.ts.map +1 -0
  43. package/dist/schemas/integrations.schemas.js +149 -0
  44. package/dist/schemas/invoices.schemas.d.ts +132 -0
  45. package/dist/schemas/invoices.schemas.d.ts.map +1 -1
  46. package/dist/schemas/invoices.schemas.js +6 -0
  47. package/dist/schemas/locale.schemas.d.ts +2 -2
  48. package/dist/schemas/subscriptions.schemas.d.ts +56 -0
  49. package/dist/schemas/subscriptions.schemas.d.ts.map +1 -1
  50. package/dist/schemas/subscriptions.schemas.js +12 -0
  51. package/dist/schemas/trade-cash-events.schemas.d.ts +101 -31
  52. package/dist/schemas/trade-cash-events.schemas.d.ts.map +1 -1
  53. package/dist/schemas/trade-cash-events.schemas.js +12 -0
  54. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"market-intelligence.routes.d.ts","sourceRoot":"","sources":["../../src/routes/market-intelligence.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,QAAA,MAAM,yBAAyB;;;;;;;;;;IAU7B;;;OAGG;;;IAGH,gEAAgE;;IAEhE,qFAAqF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAErF,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAZ3C;;;WAGG;;;QAGH,gEAAgE;;QAEhE,qFAAqF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBrF,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;EAiBxC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWlC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAlEnC;;;uBAGG;;;oBAGH,gEAAgE;;oBAEhE,qFAAqF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+GrF,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC;AACvE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"market-intelligence.routes.d.ts","sourceRoot":"","sources":["../../src/routes/market-intelligence.routes.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,18 @@ const cropPriceProjectionSchema = z.object({
35
35
  vsPlatformPercent: z.number().nullable(),
36
36
  /** Sum of field area (ha) for this crop on the farm; null if unknown / sales-only */
37
37
  areaHa: z.number().nullable().optional(),
38
+ /** Live public price (World Bank RTFP / WFP) for the nearest market, when available. */
39
+ publicReference: z
40
+ .object({
41
+ price: z.number(),
42
+ unit: z.string(),
43
+ source: z.string(),
44
+ market: z.string().nullable(),
45
+ observedAt: z.string(),
46
+ distanceKm: z.number().nullable(),
47
+ })
48
+ .nullable()
49
+ .optional(),
38
50
  });
39
51
  export const marketIntelligenceOverviewSchema = z.object({
40
52
  farmId: z.string().uuid(),
@@ -89,6 +101,33 @@ export const marketPriceReportSchema = z.object({
89
101
  marketLabel: z.string().nullable(),
90
102
  createdAt: z.string().datetime(),
91
103
  });
104
+ const provenanceSchema = z.object({
105
+ provider: z.string(),
106
+ retrievedAt: z.string(),
107
+ licence: z.string(),
108
+ confidence: z.number(),
109
+ });
110
+ export const marketPriceTrendSchema = z.object({
111
+ data: z
112
+ .object({
113
+ commodityKey: z.string(),
114
+ label: z.string(),
115
+ market: z.string(),
116
+ scope: z.enum(['market', 'zone', 'national']),
117
+ distanceKm: z.number().nullable(),
118
+ unit: z.string(),
119
+ currency: z.string(),
120
+ latest: z.object({ month: z.string(), price: z.number(), observed: z.boolean() }),
121
+ previousMonthPrice: z.number().nullable(),
122
+ yearAgoPrice: z.number().nullable(),
123
+ sameMonth3yAverage: z.number().nullable(),
124
+ vsSameMonth3yPercent: z.number().nullable(),
125
+ changeYoYPercent: z.number().nullable(),
126
+ series: z.array(z.object({ month: z.string(), price: z.number() })),
127
+ })
128
+ .nullable(),
129
+ provenance: provenanceSchema.nullable(),
130
+ });
92
131
  export const marketIntelligenceRouter = c.router({
93
132
  getOverview: {
94
133
  method: 'GET',
@@ -138,4 +177,17 @@ export const marketIntelligenceRouter = c.router({
138
177
  },
139
178
  summary: 'List recent market price reports for a farm',
140
179
  },
180
+ getPriceTrend: {
181
+ method: 'GET',
182
+ path: '/farms/:farmId/market-intelligence/price-trend',
183
+ pathParams: z.object({ farmId: z.string().uuid() }),
184
+ query: z.object({ crop: z.string().min(1).max(100) }),
185
+ responses: {
186
+ 200: marketPriceTrendSchema,
187
+ 401: jsonApiErrorResponseSchema,
188
+ 404: jsonApiErrorResponseSchema,
189
+ },
190
+ summary: 'Public market price trend for a crop near the farm',
191
+ description: 'Nearest World Bank RTFP / WFP market series: latest month, vs last year, vs the 3-year same-month average. data is null when no feed covers the crop.',
192
+ },
141
193
  });
@@ -60,7 +60,6 @@ export declare const poultryMarketCommoditySchema: z.ZodObject<{
60
60
  unit: string;
61
61
  category: "input" | "output";
62
62
  label: string;
63
- key: string;
64
63
  latest: {
65
64
  source: "farm" | "platform" | "public";
66
65
  currency: string;
@@ -70,11 +69,11 @@ export declare const poultryMarketCommoditySchema: z.ZodObject<{
70
69
  marketLabel: string | null;
71
70
  farmCount?: number | undefined;
72
71
  } | null;
72
+ key: string;
73
73
  }, {
74
74
  unit: string;
75
75
  category: "input" | "output";
76
76
  label: string;
77
- key: string;
78
77
  latest: {
79
78
  source: "farm" | "platform" | "public";
80
79
  currency: string;
@@ -84,6 +83,7 @@ export declare const poultryMarketCommoditySchema: z.ZodObject<{
84
83
  marketLabel: string | null;
85
84
  farmCount?: number | undefined;
86
85
  } | null;
86
+ key: string;
87
87
  }>;
88
88
  export declare const poultryFeedBridgeSchema: z.ZodObject<{
89
89
  maizePerKg: z.ZodNullable<z.ZodNumber>;
@@ -137,7 +137,6 @@ export declare const poultryMarketSnapshotSchema: z.ZodObject<{
137
137
  unit: string;
138
138
  category: "input" | "output";
139
139
  label: string;
140
- key: string;
141
140
  latest: {
142
141
  source: "farm" | "platform" | "public";
143
142
  currency: string;
@@ -147,11 +146,11 @@ export declare const poultryMarketSnapshotSchema: z.ZodObject<{
147
146
  marketLabel: string | null;
148
147
  farmCount?: number | undefined;
149
148
  } | null;
149
+ key: string;
150
150
  }, {
151
151
  unit: string;
152
152
  category: "input" | "output";
153
153
  label: string;
154
- key: string;
155
154
  latest: {
156
155
  source: "farm" | "platform" | "public";
157
156
  currency: string;
@@ -161,6 +160,7 @@ export declare const poultryMarketSnapshotSchema: z.ZodObject<{
161
160
  marketLabel: string | null;
162
161
  farmCount?: number | undefined;
163
162
  } | null;
163
+ key: string;
164
164
  }>, "many">;
165
165
  feedBridge: z.ZodObject<{
166
166
  maizePerKg: z.ZodNullable<z.ZodNumber>;
@@ -185,7 +185,6 @@ export declare const poultryMarketSnapshotSchema: z.ZodObject<{
185
185
  unit: string;
186
186
  category: "input" | "output";
187
187
  label: string;
188
- key: string;
189
188
  latest: {
190
189
  source: "farm" | "platform" | "public";
191
190
  currency: string;
@@ -195,6 +194,7 @@ export declare const poultryMarketSnapshotSchema: z.ZodObject<{
195
194
  marketLabel: string | null;
196
195
  farmCount?: number | undefined;
197
196
  } | null;
197
+ key: string;
198
198
  }[];
199
199
  feedBridge: {
200
200
  note: string;
@@ -209,7 +209,6 @@ export declare const poultryMarketSnapshotSchema: z.ZodObject<{
209
209
  unit: string;
210
210
  category: "input" | "output";
211
211
  label: string;
212
- key: string;
213
212
  latest: {
214
213
  source: "farm" | "platform" | "public";
215
214
  currency: string;
@@ -219,6 +218,7 @@ export declare const poultryMarketSnapshotSchema: z.ZodObject<{
219
218
  marketLabel: string | null;
220
219
  farmCount?: number | undefined;
221
220
  } | null;
221
+ key: string;
222
222
  }[];
223
223
  feedBridge: {
224
224
  note: string;
@@ -235,7 +235,6 @@ export declare const poultryMarketSnapshotSchema: z.ZodObject<{
235
235
  unit: string;
236
236
  category: "input" | "output";
237
237
  label: string;
238
- key: string;
239
238
  latest: {
240
239
  source: "farm" | "platform" | "public";
241
240
  currency: string;
@@ -245,6 +244,7 @@ export declare const poultryMarketSnapshotSchema: z.ZodObject<{
245
244
  marketLabel: string | null;
246
245
  farmCount?: number | undefined;
247
246
  } | null;
247
+ key: string;
248
248
  }[];
249
249
  feedBridge: {
250
250
  note: string;
@@ -261,7 +261,6 @@ export declare const poultryMarketSnapshotSchema: z.ZodObject<{
261
261
  unit: string;
262
262
  category: "input" | "output";
263
263
  label: string;
264
- key: string;
265
264
  latest: {
266
265
  source: "farm" | "platform" | "public";
267
266
  currency: string;
@@ -271,6 +270,7 @@ export declare const poultryMarketSnapshotSchema: z.ZodObject<{
271
270
  marketLabel: string | null;
272
271
  farmCount?: number | undefined;
273
272
  } | null;
273
+ key: string;
274
274
  }[];
275
275
  feedBridge: {
276
276
  note: string;
@@ -1290,7 +1290,6 @@ export declare const poultryRouter: {
1290
1290
  unit: string;
1291
1291
  category: "input" | "output";
1292
1292
  label: string;
1293
- key: string;
1294
1293
  latest: {
1295
1294
  source: "farm" | "platform" | "public";
1296
1295
  currency: string;
@@ -1300,11 +1299,11 @@ export declare const poultryRouter: {
1300
1299
  marketLabel: string | null;
1301
1300
  farmCount?: number | undefined;
1302
1301
  } | null;
1302
+ key: string;
1303
1303
  }, {
1304
1304
  unit: string;
1305
1305
  category: "input" | "output";
1306
1306
  label: string;
1307
- key: string;
1308
1307
  latest: {
1309
1308
  source: "farm" | "platform" | "public";
1310
1309
  currency: string;
@@ -1314,6 +1313,7 @@ export declare const poultryRouter: {
1314
1313
  marketLabel: string | null;
1315
1314
  farmCount?: number | undefined;
1316
1315
  } | null;
1316
+ key: string;
1317
1317
  }>, "many">;
1318
1318
  feedBridge: z.ZodObject<{
1319
1319
  maizePerKg: z.ZodNullable<z.ZodNumber>;
@@ -1338,7 +1338,6 @@ export declare const poultryRouter: {
1338
1338
  unit: string;
1339
1339
  category: "input" | "output";
1340
1340
  label: string;
1341
- key: string;
1342
1341
  latest: {
1343
1342
  source: "farm" | "platform" | "public";
1344
1343
  currency: string;
@@ -1348,6 +1347,7 @@ export declare const poultryRouter: {
1348
1347
  marketLabel: string | null;
1349
1348
  farmCount?: number | undefined;
1350
1349
  } | null;
1350
+ key: string;
1351
1351
  }[];
1352
1352
  feedBridge: {
1353
1353
  note: string;
@@ -1362,7 +1362,6 @@ export declare const poultryRouter: {
1362
1362
  unit: string;
1363
1363
  category: "input" | "output";
1364
1364
  label: string;
1365
- key: string;
1366
1365
  latest: {
1367
1366
  source: "farm" | "platform" | "public";
1368
1367
  currency: string;
@@ -1372,6 +1371,7 @@ export declare const poultryRouter: {
1372
1371
  marketLabel: string | null;
1373
1372
  farmCount?: number | undefined;
1374
1373
  } | null;
1374
+ key: string;
1375
1375
  }[];
1376
1376
  feedBridge: {
1377
1377
  note: string;
@@ -1388,7 +1388,6 @@ export declare const poultryRouter: {
1388
1388
  unit: string;
1389
1389
  category: "input" | "output";
1390
1390
  label: string;
1391
- key: string;
1392
1391
  latest: {
1393
1392
  source: "farm" | "platform" | "public";
1394
1393
  currency: string;
@@ -1398,6 +1397,7 @@ export declare const poultryRouter: {
1398
1397
  marketLabel: string | null;
1399
1398
  farmCount?: number | undefined;
1400
1399
  } | null;
1400
+ key: string;
1401
1401
  }[];
1402
1402
  feedBridge: {
1403
1403
  note: string;
@@ -1414,7 +1414,6 @@ export declare const poultryRouter: {
1414
1414
  unit: string;
1415
1415
  category: "input" | "output";
1416
1416
  label: string;
1417
- key: string;
1418
1417
  latest: {
1419
1418
  source: "farm" | "platform" | "public";
1420
1419
  currency: string;
@@ -1424,6 +1423,7 @@ export declare const poultryRouter: {
1424
1423
  marketLabel: string | null;
1425
1424
  farmCount?: number | undefined;
1426
1425
  } | null;
1426
+ key: string;
1427
1427
  }[];
1428
1428
  feedBridge: {
1429
1429
  note: string;