@deepintel-ltd/farmpro-contracts 1.5.8 → 1.5.10

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 (57) hide show
  1. package/dist/index.js +50 -92
  2. package/dist/routes/admin.routes.js +13 -16
  3. package/dist/routes/agent-workflows.routes.js +81 -84
  4. package/dist/routes/agents.routes.js +29 -32
  5. package/dist/routes/analytics.routes.js +11 -14
  6. package/dist/routes/auth.routes.js +55 -58
  7. package/dist/routes/categories.routes.js +23 -26
  8. package/dist/routes/documents.routes.js +67 -70
  9. package/dist/routes/equipment.routes.js +55 -58
  10. package/dist/routes/farms.routes.js +32 -35
  11. package/dist/routes/field-monitoring.routes.d.ts +8 -1
  12. package/dist/routes/field-monitoring.routes.d.ts.map +1 -1
  13. package/dist/routes/field-monitoring.routes.js +77 -74
  14. package/dist/routes/field-observations.routes.js +41 -44
  15. package/dist/routes/fields.routes.js +44 -47
  16. package/dist/routes/finance.routes.js +121 -124
  17. package/dist/routes/harvest.routes.js +46 -49
  18. package/dist/routes/health.routes.js +6 -9
  19. package/dist/routes/index.js +51 -54
  20. package/dist/routes/input-usage.routes.js +14 -17
  21. package/dist/routes/inventory.routes.js +57 -60
  22. package/dist/routes/seasonal-plans.routes.js +14 -17
  23. package/dist/routes/soil-tests.routes.js +45 -48
  24. package/dist/routes/suppliers.routes.js +70 -73
  25. package/dist/routes/tasks.routes.js +65 -68
  26. package/dist/routes/team.routes.d.ts +306 -0
  27. package/dist/routes/team.routes.d.ts.map +1 -1
  28. package/dist/routes/team.routes.js +79 -60
  29. package/dist/routes/users.routes.js +13 -16
  30. package/dist/routes/weather.routes.js +10 -13
  31. package/dist/schemas/admin.schemas.js +43 -46
  32. package/dist/schemas/agent-workflows.schemas.js +34 -37
  33. package/dist/schemas/agents.schemas.js +46 -49
  34. package/dist/schemas/analytics.schemas.js +51 -54
  35. package/dist/schemas/auth.schemas.js +96 -99
  36. package/dist/schemas/categories.schemas.js +27 -30
  37. package/dist/schemas/common.schemas.js +89 -95
  38. package/dist/schemas/documents.schemas.js +59 -62
  39. package/dist/schemas/equipment.schemas.js +86 -89
  40. package/dist/schemas/farms.schemas.js +40 -43
  41. package/dist/schemas/field-monitoring.schemas.js +207 -210
  42. package/dist/schemas/field-observations.schemas.js +93 -96
  43. package/dist/schemas/fields.schemas.js +82 -85
  44. package/dist/schemas/finance.schemas.js +134 -137
  45. package/dist/schemas/harvest.schemas.js +46 -49
  46. package/dist/schemas/health.schemas.js +14 -17
  47. package/dist/schemas/input-usage.schemas.js +21 -24
  48. package/dist/schemas/inventory.schemas.js +58 -61
  49. package/dist/schemas/recommendations.schemas.js +22 -25
  50. package/dist/schemas/seasonal-plans.schemas.js +21 -24
  51. package/dist/schemas/soil-tests.schemas.js +70 -73
  52. package/dist/schemas/suppliers.schemas.js +90 -93
  53. package/dist/schemas/tasks.schemas.js +93 -96
  54. package/dist/schemas/team.schemas.js +35 -38
  55. package/dist/schemas/users.schemas.js +19 -22
  56. package/dist/schemas/weather.schemas.js +32 -35
  57. package/package.json +9 -1
@@ -1,25 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fieldObservationsRouter = void 0;
4
- const core_1 = require("@ts-rest/core");
5
- const zod_1 = require("zod");
6
- const field_observations_schemas_1 = require("../schemas/field-observations.schemas");
7
- const c = (0, core_1.initContract)();
8
- exports.fieldObservationsRouter = c.router({
1
+ import { initContract } from '@ts-rest/core';
2
+ import { z } from 'zod';
3
+ import { uploadObservationBodySchema, observationResponseSchema, observationListResponseSchema, observationListQuerySchema, updateObservationActionInputSchema, observationStatsQuerySchema, } from '../schemas/field-observations.schemas';
4
+ const c = initContract();
5
+ export const fieldObservationsRouter = c.router({
9
6
  // Upload new observation photo (farm-level)
10
7
  createFarmObservation: {
11
8
  method: 'POST',
12
9
  path: '/farms/:farmId/observations',
13
10
  contentType: 'multipart/form-data',
14
- body: field_observations_schemas_1.uploadObservationBodySchema,
11
+ body: uploadObservationBodySchema,
15
12
  responses: {
16
- 202: zod_1.z.object({
17
- message: zod_1.z.string(),
18
- observationId: zod_1.z.string().uuid(),
19
- status: zod_1.z.literal('accepted'),
13
+ 202: z.object({
14
+ message: z.string(),
15
+ observationId: z.string().uuid(),
16
+ status: z.literal('accepted'),
20
17
  }),
21
- 400: zod_1.z.object({ message: zod_1.z.string(), code: zod_1.z.string() }),
22
- 404: zod_1.z.object({ message: zod_1.z.string(), code: zod_1.z.string() }),
18
+ 400: z.object({ message: z.string(), code: z.string() }),
19
+ 404: z.object({ message: z.string(), code: z.string() }),
23
20
  },
24
21
  summary: 'Upload farm observation photo for AI analysis',
25
22
  },
@@ -28,15 +25,15 @@ exports.fieldObservationsRouter = c.router({
28
25
  method: 'POST',
29
26
  path: '/fields/:fieldId/observations',
30
27
  contentType: 'multipart/form-data',
31
- body: field_observations_schemas_1.uploadObservationBodySchema,
28
+ body: uploadObservationBodySchema,
32
29
  responses: {
33
- 202: zod_1.z.object({
34
- message: zod_1.z.string(),
35
- observationId: zod_1.z.string().uuid(),
36
- status: zod_1.z.literal('accepted'),
30
+ 202: z.object({
31
+ message: z.string(),
32
+ observationId: z.string().uuid(),
33
+ status: z.literal('accepted'),
37
34
  }),
38
- 400: zod_1.z.object({ message: zod_1.z.string(), code: zod_1.z.string() }),
39
- 404: zod_1.z.object({ message: zod_1.z.string(), code: zod_1.z.string() }),
35
+ 400: z.object({ message: z.string(), code: z.string() }),
36
+ 404: z.object({ message: z.string(), code: z.string() }),
40
37
  },
41
38
  summary: 'Upload field observation photo for AI analysis',
42
39
  },
@@ -45,8 +42,8 @@ exports.fieldObservationsRouter = c.router({
45
42
  method: 'GET',
46
43
  path: '/observations/:id',
47
44
  responses: {
48
- 200: field_observations_schemas_1.observationResponseSchema,
49
- 404: zod_1.z.object({ message: zod_1.z.string(), code: zod_1.z.string() }),
45
+ 200: observationResponseSchema,
46
+ 404: z.object({ message: z.string(), code: z.string() }),
50
47
  },
51
48
  summary: 'Get observation details and analysis results',
52
49
  },
@@ -54,10 +51,10 @@ exports.fieldObservationsRouter = c.router({
54
51
  listFieldObservations: {
55
52
  method: 'GET',
56
53
  path: '/fields/:fieldId/observations',
57
- query: field_observations_schemas_1.observationListQuerySchema,
54
+ query: observationListQuerySchema,
58
55
  responses: {
59
- 200: field_observations_schemas_1.observationListResponseSchema,
60
- 404: zod_1.z.object({ message: zod_1.z.string(), code: zod_1.z.string() }),
56
+ 200: observationListResponseSchema,
57
+ 404: z.object({ message: z.string(), code: z.string() }),
61
58
  },
62
59
  summary: 'List all observations for a field',
63
60
  },
@@ -65,9 +62,9 @@ exports.fieldObservationsRouter = c.router({
65
62
  listFarmObservations: {
66
63
  method: 'GET',
67
64
  path: '/farms/:farmId/observations',
68
- query: field_observations_schemas_1.observationListQuerySchema,
65
+ query: observationListQuerySchema,
69
66
  responses: {
70
- 200: field_observations_schemas_1.observationListResponseSchema,
67
+ 200: observationListResponseSchema,
71
68
  },
72
69
  summary: 'List all observations across all farm fields',
73
70
  },
@@ -75,10 +72,10 @@ exports.fieldObservationsRouter = c.router({
75
72
  updateObservationAction: {
76
73
  method: 'PATCH',
77
74
  path: '/observations/:id/action',
78
- body: field_observations_schemas_1.updateObservationActionInputSchema,
75
+ body: updateObservationActionInputSchema,
79
76
  responses: {
80
- 200: field_observations_schemas_1.observationResponseSchema,
81
- 404: zod_1.z.object({ message: zod_1.z.string(), code: zod_1.z.string() }),
77
+ 200: observationResponseSchema,
78
+ 404: z.object({ message: z.string(), code: z.string() }),
82
79
  },
83
80
  summary: 'Update action status for observation',
84
81
  },
@@ -87,8 +84,8 @@ exports.fieldObservationsRouter = c.router({
87
84
  method: 'DELETE',
88
85
  path: '/observations/:id',
89
86
  responses: {
90
- 204: zod_1.z.void(),
91
- 404: zod_1.z.object({ message: zod_1.z.string(), code: zod_1.z.string() }),
87
+ 204: z.void(),
88
+ 404: z.object({ message: z.string(), code: z.string() }),
92
89
  },
93
90
  summary: 'Delete observation and associated photo',
94
91
  },
@@ -96,17 +93,17 @@ exports.fieldObservationsRouter = c.router({
96
93
  getObservationStats: {
97
94
  method: 'GET',
98
95
  path: '/fields/:fieldId/observations/stats',
99
- query: field_observations_schemas_1.observationStatsQuerySchema,
96
+ query: observationStatsQuerySchema,
100
97
  responses: {
101
- 200: zod_1.z.object({
102
- total: zod_1.z.number(),
103
- byType: zod_1.z.record(zod_1.z.number()),
104
- bySeverity: zod_1.z.record(zod_1.z.number()),
105
- avgConfidence: zod_1.z.number(),
106
- mostCommonIssues: zod_1.z.array(zod_1.z.object({
107
- name: zod_1.z.string(),
108
- count: zod_1.z.number(),
109
- avgSeverity: zod_1.z.string(),
98
+ 200: z.object({
99
+ total: z.number(),
100
+ byType: z.record(z.number()),
101
+ bySeverity: z.record(z.number()),
102
+ avgConfidence: z.number(),
103
+ mostCommonIssues: z.array(z.object({
104
+ name: z.string(),
105
+ count: z.number(),
106
+ avgSeverity: z.string(),
110
107
  })),
111
108
  }),
112
109
  },
@@ -1,26 +1,23 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fieldsRouter = void 0;
4
- const core_1 = require("@ts-rest/core");
5
- const zod_1 = require("zod");
6
- const fields_schemas_1 = require("../schemas/fields.schemas");
7
- const common_schemas_1 = require("../schemas/common.schemas");
8
- const c = (0, core_1.initContract)();
9
- exports.fieldsRouter = c.router({
1
+ import { initContract } from '@ts-rest/core';
2
+ import { z } from 'zod';
3
+ import { createFieldSchema, updateFieldSchema, fieldResponseSchema, fieldDetailResponseSchema, fieldListResponseSchema, } from '../schemas/fields.schemas';
4
+ import { jsonApiErrorResponseSchema, jsonApiSuccessResponseSchema, jsonApiPaginationQuerySchema, jsonApiSortQuerySchema, jsonApiIncludeQuerySchema, jsonApiFilterQuerySchema } from '../schemas/common.schemas';
5
+ const c = initContract();
6
+ export const fieldsRouter = c.router({
10
7
  // List fields for a farm
11
8
  listFields: {
12
9
  method: 'GET',
13
10
  path: '/farms/:farmId/fields',
14
- pathParams: zod_1.z.object({ farmId: zod_1.z.string().uuid() }),
15
- query: common_schemas_1.jsonApiPaginationQuerySchema
16
- .merge(common_schemas_1.jsonApiSortQuerySchema)
17
- .merge(common_schemas_1.jsonApiIncludeQuerySchema)
18
- .merge(common_schemas_1.jsonApiFilterQuerySchema),
11
+ pathParams: z.object({ farmId: z.string().uuid() }),
12
+ query: jsonApiPaginationQuerySchema
13
+ .merge(jsonApiSortQuerySchema)
14
+ .merge(jsonApiIncludeQuerySchema)
15
+ .merge(jsonApiFilterQuerySchema),
19
16
  responses: {
20
- 200: fields_schemas_1.fieldListResponseSchema,
21
- 400: common_schemas_1.jsonApiErrorResponseSchema,
22
- 404: common_schemas_1.jsonApiErrorResponseSchema,
23
- 401: common_schemas_1.jsonApiErrorResponseSchema,
17
+ 200: fieldListResponseSchema,
18
+ 400: jsonApiErrorResponseSchema,
19
+ 404: jsonApiErrorResponseSchema,
20
+ 401: jsonApiErrorResponseSchema,
24
21
  },
25
22
  summary: 'List fields for a farm',
26
23
  description: 'Get all fields for a specific farm with optional filtering',
@@ -29,14 +26,14 @@ exports.fieldsRouter = c.router({
29
26
  createField: {
30
27
  method: 'POST',
31
28
  path: '/farms/:farmId/fields',
32
- pathParams: zod_1.z.object({ farmId: zod_1.z.string().uuid() }),
33
- body: zod_1.z.object({ data: fields_schemas_1.createFieldSchema }),
29
+ pathParams: z.object({ farmId: z.string().uuid() }),
30
+ body: z.object({ data: createFieldSchema }),
34
31
  responses: {
35
- 201: fields_schemas_1.fieldResponseSchema,
36
- 400: common_schemas_1.jsonApiErrorResponseSchema,
37
- 404: common_schemas_1.jsonApiErrorResponseSchema,
38
- 401: common_schemas_1.jsonApiErrorResponseSchema,
39
- 422: common_schemas_1.jsonApiErrorResponseSchema,
32
+ 201: fieldResponseSchema,
33
+ 400: jsonApiErrorResponseSchema,
34
+ 404: jsonApiErrorResponseSchema,
35
+ 401: jsonApiErrorResponseSchema,
36
+ 422: jsonApiErrorResponseSchema,
40
37
  },
41
38
  summary: 'Create a new field',
42
39
  description: 'Create a new field with optional geometry',
@@ -45,15 +42,15 @@ exports.fieldsRouter = c.router({
45
42
  getField: {
46
43
  method: 'GET',
47
44
  path: '/farms/:farmId/fields/:id',
48
- pathParams: zod_1.z.object({
49
- farmId: zod_1.z.string().uuid(),
50
- id: zod_1.z.string().uuid(),
45
+ pathParams: z.object({
46
+ farmId: z.string().uuid(),
47
+ id: z.string().uuid(),
51
48
  }),
52
- query: common_schemas_1.jsonApiIncludeQuerySchema,
49
+ query: jsonApiIncludeQuerySchema,
53
50
  responses: {
54
- 200: fields_schemas_1.fieldDetailResponseSchema,
55
- 404: common_schemas_1.jsonApiErrorResponseSchema,
56
- 401: common_schemas_1.jsonApiErrorResponseSchema,
51
+ 200: fieldDetailResponseSchema,
52
+ 404: jsonApiErrorResponseSchema,
53
+ 401: jsonApiErrorResponseSchema,
57
54
  },
58
55
  summary: 'Get field by ID',
59
56
  description: 'Get detailed information about a specific field',
@@ -62,17 +59,17 @@ exports.fieldsRouter = c.router({
62
59
  updateField: {
63
60
  method: 'PATCH',
64
61
  path: '/farms/:farmId/fields/:id',
65
- pathParams: zod_1.z.object({
66
- farmId: zod_1.z.string().uuid(),
67
- id: zod_1.z.string().uuid(),
62
+ pathParams: z.object({
63
+ farmId: z.string().uuid(),
64
+ id: z.string().uuid(),
68
65
  }),
69
- body: zod_1.z.object({ data: fields_schemas_1.updateFieldSchema }),
66
+ body: z.object({ data: updateFieldSchema }),
70
67
  responses: {
71
- 200: fields_schemas_1.fieldResponseSchema,
72
- 400: common_schemas_1.jsonApiErrorResponseSchema,
73
- 404: common_schemas_1.jsonApiErrorResponseSchema,
74
- 401: common_schemas_1.jsonApiErrorResponseSchema,
75
- 422: common_schemas_1.jsonApiErrorResponseSchema,
68
+ 200: fieldResponseSchema,
69
+ 400: jsonApiErrorResponseSchema,
70
+ 404: jsonApiErrorResponseSchema,
71
+ 401: jsonApiErrorResponseSchema,
72
+ 422: jsonApiErrorResponseSchema,
76
73
  },
77
74
  summary: 'Update field',
78
75
  description: 'Update field information including geometry and crop lifecycle',
@@ -81,14 +78,14 @@ exports.fieldsRouter = c.router({
81
78
  deleteField: {
82
79
  method: 'DELETE',
83
80
  path: '/farms/:farmId/fields/:id',
84
- pathParams: zod_1.z.object({
85
- farmId: zod_1.z.string().uuid(),
86
- id: zod_1.z.string().uuid(),
81
+ pathParams: z.object({
82
+ farmId: z.string().uuid(),
83
+ id: z.string().uuid(),
87
84
  }),
88
85
  responses: {
89
- 204: common_schemas_1.jsonApiSuccessResponseSchema,
90
- 404: common_schemas_1.jsonApiErrorResponseSchema,
91
- 401: common_schemas_1.jsonApiErrorResponseSchema,
86
+ 204: jsonApiSuccessResponseSchema,
87
+ 404: jsonApiErrorResponseSchema,
88
+ 401: jsonApiErrorResponseSchema,
92
89
  },
93
90
  summary: 'Delete field',
94
91
  description: 'Delete a field and all associated data',
@@ -1,24 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.financeRouter = void 0;
4
- const core_1 = require("@ts-rest/core");
5
- const zod_1 = require("zod");
6
- const finance_schemas_1 = require("../schemas/finance.schemas");
7
- const common_schemas_1 = require("../schemas/common.schemas");
8
- const c = (0, core_1.initContract)();
9
- exports.financeRouter = c.router({
1
+ import { initContract } from '@ts-rest/core';
2
+ import { z } from 'zod';
3
+ import { createBudgetSchema, updateBudgetSchema, budgetResponseSchema, budgetListResponseSchema, createExpenseSchema, updateExpenseSchema, expenseResponseSchema, expenseDetailResponseSchema, expenseListResponseSchema, createRevenueSchema, updateRevenueSchema, revenueResponseSchema, revenueDetailResponseSchema, revenueListResponseSchema, financeSummaryResponseSchema, } from '../schemas/finance.schemas';
4
+ import { jsonApiErrorResponseSchema, jsonApiSuccessResponseSchema, jsonApiPaginationQuerySchema, jsonApiSortQuerySchema, jsonApiIncludeQuerySchema, jsonApiFilterQuerySchema } from '../schemas/common.schemas';
5
+ const c = initContract();
6
+ export const financeRouter = c.router({
10
7
  // Budget routes
11
8
  listBudget: {
12
9
  method: 'GET',
13
10
  path: '/farms/:farmId/budget',
14
- pathParams: zod_1.z.object({ farmId: zod_1.z.string().uuid() }),
15
- query: common_schemas_1.jsonApiPaginationQuerySchema
16
- .merge(common_schemas_1.jsonApiSortQuerySchema)
17
- .merge(common_schemas_1.jsonApiIncludeQuerySchema),
11
+ pathParams: z.object({ farmId: z.string().uuid() }),
12
+ query: jsonApiPaginationQuerySchema
13
+ .merge(jsonApiSortQuerySchema)
14
+ .merge(jsonApiIncludeQuerySchema),
18
15
  responses: {
19
- 200: finance_schemas_1.budgetListResponseSchema,
20
- 404: common_schemas_1.jsonApiErrorResponseSchema,
21
- 401: common_schemas_1.jsonApiErrorResponseSchema,
16
+ 200: budgetListResponseSchema,
17
+ 404: jsonApiErrorResponseSchema,
18
+ 401: jsonApiErrorResponseSchema,
22
19
  },
23
20
  summary: 'List budget items',
24
21
  description: 'Get all budget categories for a farm',
@@ -26,14 +23,14 @@ exports.financeRouter = c.router({
26
23
  createBudget: {
27
24
  method: 'POST',
28
25
  path: '/farms/:farmId/budget',
29
- pathParams: zod_1.z.object({ farmId: zod_1.z.string().uuid() }),
30
- body: zod_1.z.object({ data: finance_schemas_1.createBudgetSchema }),
26
+ pathParams: z.object({ farmId: z.string().uuid() }),
27
+ body: z.object({ data: createBudgetSchema }),
31
28
  responses: {
32
- 201: finance_schemas_1.budgetResponseSchema,
33
- 400: common_schemas_1.jsonApiErrorResponseSchema,
34
- 404: common_schemas_1.jsonApiErrorResponseSchema,
35
- 401: common_schemas_1.jsonApiErrorResponseSchema,
36
- 422: common_schemas_1.jsonApiErrorResponseSchema,
29
+ 201: budgetResponseSchema,
30
+ 400: jsonApiErrorResponseSchema,
31
+ 404: jsonApiErrorResponseSchema,
32
+ 401: jsonApiErrorResponseSchema,
33
+ 422: jsonApiErrorResponseSchema,
37
34
  },
38
35
  summary: 'Create budget item',
39
36
  description: 'Create a new budget category',
@@ -41,17 +38,17 @@ exports.financeRouter = c.router({
41
38
  updateBudget: {
42
39
  method: 'PATCH',
43
40
  path: '/farms/:farmId/budget/:id',
44
- pathParams: zod_1.z.object({
45
- farmId: zod_1.z.string().uuid(),
46
- id: zod_1.z.string().uuid(),
41
+ pathParams: z.object({
42
+ farmId: z.string().uuid(),
43
+ id: z.string().uuid(),
47
44
  }),
48
- body: zod_1.z.object({ data: finance_schemas_1.updateBudgetSchema }),
45
+ body: z.object({ data: updateBudgetSchema }),
49
46
  responses: {
50
- 200: finance_schemas_1.budgetResponseSchema,
51
- 400: common_schemas_1.jsonApiErrorResponseSchema,
52
- 404: common_schemas_1.jsonApiErrorResponseSchema,
53
- 401: common_schemas_1.jsonApiErrorResponseSchema,
54
- 422: common_schemas_1.jsonApiErrorResponseSchema,
47
+ 200: budgetResponseSchema,
48
+ 400: jsonApiErrorResponseSchema,
49
+ 404: jsonApiErrorResponseSchema,
50
+ 401: jsonApiErrorResponseSchema,
51
+ 422: jsonApiErrorResponseSchema,
55
52
  },
56
53
  summary: 'Update budget item',
57
54
  description: 'Update a budget category',
@@ -59,14 +56,14 @@ exports.financeRouter = c.router({
59
56
  deleteBudget: {
60
57
  method: 'DELETE',
61
58
  path: '/farms/:farmId/budget/:id',
62
- pathParams: zod_1.z.object({
63
- farmId: zod_1.z.string().uuid(),
64
- id: zod_1.z.string().uuid(),
59
+ pathParams: z.object({
60
+ farmId: z.string().uuid(),
61
+ id: z.string().uuid(),
65
62
  }),
66
63
  responses: {
67
- 204: common_schemas_1.jsonApiSuccessResponseSchema,
68
- 404: common_schemas_1.jsonApiErrorResponseSchema,
69
- 401: common_schemas_1.jsonApiErrorResponseSchema,
64
+ 204: jsonApiSuccessResponseSchema,
65
+ 404: jsonApiErrorResponseSchema,
66
+ 401: jsonApiErrorResponseSchema,
70
67
  },
71
68
  summary: 'Delete budget item',
72
69
  description: 'Delete a budget category',
@@ -75,20 +72,20 @@ exports.financeRouter = c.router({
75
72
  listExpenses: {
76
73
  method: 'GET',
77
74
  path: '/farms/:farmId/expenses',
78
- pathParams: zod_1.z.object({ farmId: zod_1.z.string().uuid() }),
79
- query: common_schemas_1.jsonApiPaginationQuerySchema
80
- .merge(common_schemas_1.jsonApiSortQuerySchema)
81
- .merge(common_schemas_1.jsonApiIncludeQuerySchema)
82
- .merge(common_schemas_1.jsonApiFilterQuerySchema)
83
- .merge(zod_1.z.object({
84
- 'filter[category]': zod_1.z.string().optional(),
85
- 'filter[fieldId]': zod_1.z.string().uuid().optional(),
86
- 'filter[cropId]': zod_1.z.string().optional(),
75
+ pathParams: z.object({ farmId: z.string().uuid() }),
76
+ query: jsonApiPaginationQuerySchema
77
+ .merge(jsonApiSortQuerySchema)
78
+ .merge(jsonApiIncludeQuerySchema)
79
+ .merge(jsonApiFilterQuerySchema)
80
+ .merge(z.object({
81
+ 'filter[category]': z.string().optional(),
82
+ 'filter[fieldId]': z.string().uuid().optional(),
83
+ 'filter[cropId]': z.string().optional(),
87
84
  })),
88
85
  responses: {
89
- 200: finance_schemas_1.expenseListResponseSchema,
90
- 404: common_schemas_1.jsonApiErrorResponseSchema,
91
- 401: common_schemas_1.jsonApiErrorResponseSchema,
86
+ 200: expenseListResponseSchema,
87
+ 404: jsonApiErrorResponseSchema,
88
+ 401: jsonApiErrorResponseSchema,
92
89
  },
93
90
  summary: 'List expenses',
94
91
  description: 'Get all expenses for a farm with optional filtering',
@@ -96,14 +93,14 @@ exports.financeRouter = c.router({
96
93
  createExpense: {
97
94
  method: 'POST',
98
95
  path: '/farms/:farmId/expenses',
99
- pathParams: zod_1.z.object({ farmId: zod_1.z.string().uuid() }),
100
- body: zod_1.z.object({ data: finance_schemas_1.createExpenseSchema }),
96
+ pathParams: z.object({ farmId: z.string().uuid() }),
97
+ body: z.object({ data: createExpenseSchema }),
101
98
  responses: {
102
- 201: finance_schemas_1.expenseResponseSchema,
103
- 400: common_schemas_1.jsonApiErrorResponseSchema,
104
- 404: common_schemas_1.jsonApiErrorResponseSchema,
105
- 401: common_schemas_1.jsonApiErrorResponseSchema,
106
- 422: common_schemas_1.jsonApiErrorResponseSchema,
99
+ 201: expenseResponseSchema,
100
+ 400: jsonApiErrorResponseSchema,
101
+ 404: jsonApiErrorResponseSchema,
102
+ 401: jsonApiErrorResponseSchema,
103
+ 422: jsonApiErrorResponseSchema,
107
104
  },
108
105
  summary: 'Create expense',
109
106
  description: 'Create a new expense with optional field/crop allocation',
@@ -111,15 +108,15 @@ exports.financeRouter = c.router({
111
108
  getExpense: {
112
109
  method: 'GET',
113
110
  path: '/farms/:farmId/expenses/:id',
114
- pathParams: zod_1.z.object({
115
- farmId: zod_1.z.string().uuid(),
116
- id: zod_1.z.string().uuid(),
111
+ pathParams: z.object({
112
+ farmId: z.string().uuid(),
113
+ id: z.string().uuid(),
117
114
  }),
118
- query: common_schemas_1.jsonApiIncludeQuerySchema,
115
+ query: jsonApiIncludeQuerySchema,
119
116
  responses: {
120
- 200: finance_schemas_1.expenseDetailResponseSchema,
121
- 404: common_schemas_1.jsonApiErrorResponseSchema,
122
- 401: common_schemas_1.jsonApiErrorResponseSchema,
117
+ 200: expenseDetailResponseSchema,
118
+ 404: jsonApiErrorResponseSchema,
119
+ 401: jsonApiErrorResponseSchema,
123
120
  },
124
121
  summary: 'Get expense by ID',
125
122
  description: 'Get detailed information about a specific expense',
@@ -127,17 +124,17 @@ exports.financeRouter = c.router({
127
124
  updateExpense: {
128
125
  method: 'PATCH',
129
126
  path: '/farms/:farmId/expenses/:id',
130
- pathParams: zod_1.z.object({
131
- farmId: zod_1.z.string().uuid(),
132
- id: zod_1.z.string().uuid(),
127
+ pathParams: z.object({
128
+ farmId: z.string().uuid(),
129
+ id: z.string().uuid(),
133
130
  }),
134
- body: zod_1.z.object({ data: finance_schemas_1.updateExpenseSchema }),
131
+ body: z.object({ data: updateExpenseSchema }),
135
132
  responses: {
136
- 200: finance_schemas_1.expenseResponseSchema,
137
- 400: common_schemas_1.jsonApiErrorResponseSchema,
138
- 404: common_schemas_1.jsonApiErrorResponseSchema,
139
- 401: common_schemas_1.jsonApiErrorResponseSchema,
140
- 422: common_schemas_1.jsonApiErrorResponseSchema,
133
+ 200: expenseResponseSchema,
134
+ 400: jsonApiErrorResponseSchema,
135
+ 404: jsonApiErrorResponseSchema,
136
+ 401: jsonApiErrorResponseSchema,
137
+ 422: jsonApiErrorResponseSchema,
141
138
  },
142
139
  summary: 'Update expense',
143
140
  description: 'Update an expense',
@@ -145,14 +142,14 @@ exports.financeRouter = c.router({
145
142
  deleteExpense: {
146
143
  method: 'DELETE',
147
144
  path: '/farms/:farmId/expenses/:id',
148
- pathParams: zod_1.z.object({
149
- farmId: zod_1.z.string().uuid(),
150
- id: zod_1.z.string().uuid(),
145
+ pathParams: z.object({
146
+ farmId: z.string().uuid(),
147
+ id: z.string().uuid(),
151
148
  }),
152
149
  responses: {
153
- 204: common_schemas_1.jsonApiSuccessResponseSchema,
154
- 404: common_schemas_1.jsonApiErrorResponseSchema,
155
- 401: common_schemas_1.jsonApiErrorResponseSchema,
150
+ 204: jsonApiSuccessResponseSchema,
151
+ 404: jsonApiErrorResponseSchema,
152
+ 401: jsonApiErrorResponseSchema,
156
153
  },
157
154
  summary: 'Delete expense',
158
155
  description: 'Delete an expense',
@@ -161,19 +158,19 @@ exports.financeRouter = c.router({
161
158
  listRevenue: {
162
159
  method: 'GET',
163
160
  path: '/farms/:farmId/revenue',
164
- pathParams: zod_1.z.object({ farmId: zod_1.z.string().uuid() }),
165
- query: common_schemas_1.jsonApiPaginationQuerySchema
166
- .merge(common_schemas_1.jsonApiSortQuerySchema)
167
- .merge(common_schemas_1.jsonApiIncludeQuerySchema)
168
- .merge(common_schemas_1.jsonApiFilterQuerySchema)
169
- .merge(zod_1.z.object({
170
- 'filter[crop]': zod_1.z.string().optional(),
171
- 'filter[fieldId]': zod_1.z.string().uuid().optional(),
161
+ pathParams: z.object({ farmId: z.string().uuid() }),
162
+ query: jsonApiPaginationQuerySchema
163
+ .merge(jsonApiSortQuerySchema)
164
+ .merge(jsonApiIncludeQuerySchema)
165
+ .merge(jsonApiFilterQuerySchema)
166
+ .merge(z.object({
167
+ 'filter[crop]': z.string().optional(),
168
+ 'filter[fieldId]': z.string().uuid().optional(),
172
169
  })),
173
170
  responses: {
174
- 200: finance_schemas_1.revenueListResponseSchema,
175
- 404: common_schemas_1.jsonApiErrorResponseSchema,
176
- 401: common_schemas_1.jsonApiErrorResponseSchema,
171
+ 200: revenueListResponseSchema,
172
+ 404: jsonApiErrorResponseSchema,
173
+ 401: jsonApiErrorResponseSchema,
177
174
  },
178
175
  summary: 'List revenue',
179
176
  description: 'Get all revenue entries for a farm',
@@ -181,14 +178,14 @@ exports.financeRouter = c.router({
181
178
  createRevenue: {
182
179
  method: 'POST',
183
180
  path: '/farms/:farmId/revenue',
184
- pathParams: zod_1.z.object({ farmId: zod_1.z.string().uuid() }),
185
- body: zod_1.z.object({ data: finance_schemas_1.createRevenueSchema }),
181
+ pathParams: z.object({ farmId: z.string().uuid() }),
182
+ body: z.object({ data: createRevenueSchema }),
186
183
  responses: {
187
- 201: finance_schemas_1.revenueResponseSchema,
188
- 400: common_schemas_1.jsonApiErrorResponseSchema,
189
- 404: common_schemas_1.jsonApiErrorResponseSchema,
190
- 401: common_schemas_1.jsonApiErrorResponseSchema,
191
- 422: common_schemas_1.jsonApiErrorResponseSchema,
184
+ 201: revenueResponseSchema,
185
+ 400: jsonApiErrorResponseSchema,
186
+ 404: jsonApiErrorResponseSchema,
187
+ 401: jsonApiErrorResponseSchema,
188
+ 422: jsonApiErrorResponseSchema,
192
189
  },
193
190
  summary: 'Create revenue',
194
191
  description: 'Create a new revenue entry',
@@ -196,15 +193,15 @@ exports.financeRouter = c.router({
196
193
  getRevenue: {
197
194
  method: 'GET',
198
195
  path: '/farms/:farmId/revenue/:id',
199
- pathParams: zod_1.z.object({
200
- farmId: zod_1.z.string().uuid(),
201
- id: zod_1.z.string().uuid(),
196
+ pathParams: z.object({
197
+ farmId: z.string().uuid(),
198
+ id: z.string().uuid(),
202
199
  }),
203
- query: common_schemas_1.jsonApiIncludeQuerySchema,
200
+ query: jsonApiIncludeQuerySchema,
204
201
  responses: {
205
- 200: finance_schemas_1.revenueDetailResponseSchema,
206
- 404: common_schemas_1.jsonApiErrorResponseSchema,
207
- 401: common_schemas_1.jsonApiErrorResponseSchema,
202
+ 200: revenueDetailResponseSchema,
203
+ 404: jsonApiErrorResponseSchema,
204
+ 401: jsonApiErrorResponseSchema,
208
205
  },
209
206
  summary: 'Get revenue by ID',
210
207
  description: 'Get detailed information about a specific revenue entry',
@@ -212,17 +209,17 @@ exports.financeRouter = c.router({
212
209
  updateRevenue: {
213
210
  method: 'PATCH',
214
211
  path: '/farms/:farmId/revenue/:id',
215
- pathParams: zod_1.z.object({
216
- farmId: zod_1.z.string().uuid(),
217
- id: zod_1.z.string().uuid(),
212
+ pathParams: z.object({
213
+ farmId: z.string().uuid(),
214
+ id: z.string().uuid(),
218
215
  }),
219
- body: zod_1.z.object({ data: finance_schemas_1.updateRevenueSchema }),
216
+ body: z.object({ data: updateRevenueSchema }),
220
217
  responses: {
221
- 200: finance_schemas_1.revenueResponseSchema,
222
- 400: common_schemas_1.jsonApiErrorResponseSchema,
223
- 404: common_schemas_1.jsonApiErrorResponseSchema,
224
- 401: common_schemas_1.jsonApiErrorResponseSchema,
225
- 422: common_schemas_1.jsonApiErrorResponseSchema,
218
+ 200: revenueResponseSchema,
219
+ 400: jsonApiErrorResponseSchema,
220
+ 404: jsonApiErrorResponseSchema,
221
+ 401: jsonApiErrorResponseSchema,
222
+ 422: jsonApiErrorResponseSchema,
226
223
  },
227
224
  summary: 'Update revenue',
228
225
  description: 'Update a revenue entry',
@@ -230,14 +227,14 @@ exports.financeRouter = c.router({
230
227
  deleteRevenue: {
231
228
  method: 'DELETE',
232
229
  path: '/farms/:farmId/revenue/:id',
233
- pathParams: zod_1.z.object({
234
- farmId: zod_1.z.string().uuid(),
235
- id: zod_1.z.string().uuid(),
230
+ pathParams: z.object({
231
+ farmId: z.string().uuid(),
232
+ id: z.string().uuid(),
236
233
  }),
237
234
  responses: {
238
- 204: common_schemas_1.jsonApiSuccessResponseSchema,
239
- 404: common_schemas_1.jsonApiErrorResponseSchema,
240
- 401: common_schemas_1.jsonApiErrorResponseSchema,
235
+ 204: jsonApiSuccessResponseSchema,
236
+ 404: jsonApiErrorResponseSchema,
237
+ 401: jsonApiErrorResponseSchema,
241
238
  },
242
239
  summary: 'Delete revenue',
243
240
  description: 'Delete a revenue entry',
@@ -246,12 +243,12 @@ exports.financeRouter = c.router({
246
243
  getFinanceSummary: {
247
244
  method: 'GET',
248
245
  path: '/farms/:farmId/finance/summary',
249
- pathParams: zod_1.z.object({ farmId: zod_1.z.string().uuid() }),
250
- query: common_schemas_1.jsonApiFilterQuerySchema,
246
+ pathParams: z.object({ farmId: z.string().uuid() }),
247
+ query: jsonApiFilterQuerySchema,
251
248
  responses: {
252
- 200: finance_schemas_1.financeSummaryResponseSchema,
253
- 404: common_schemas_1.jsonApiErrorResponseSchema,
254
- 401: common_schemas_1.jsonApiErrorResponseSchema,
249
+ 200: financeSummaryResponseSchema,
250
+ 404: jsonApiErrorResponseSchema,
251
+ 401: jsonApiErrorResponseSchema,
255
252
  },
256
253
  summary: 'Get finance summary',
257
254
  description: 'Get financial overview including totals, profit, and budget breakdown',