@deepintel-ltd/farmpro-contracts 1.22.4 → 1.23.1

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 (80) hide show
  1. package/dist/index.d.ts +6 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +6 -0
  4. package/dist/routes/categories.routes.d.ts +26 -26
  5. package/dist/routes/commodity-deals.routes.d.ts +217 -42
  6. package/dist/routes/commodity-deals.routes.d.ts.map +1 -1
  7. package/dist/routes/crop-profile.routes.d.ts +8 -8
  8. package/dist/routes/farm-enterprises.routes.d.ts +395 -0
  9. package/dist/routes/farm-enterprises.routes.d.ts.map +1 -1
  10. package/dist/routes/farm-enterprises.routes.js +14 -1
  11. package/dist/routes/farms.routes.d.ts +73 -20
  12. package/dist/routes/farms.routes.d.ts.map +1 -1
  13. package/dist/routes/fertigation.routes.d.ts +96 -96
  14. package/dist/routes/field-monitoring.routes.d.ts +2 -2
  15. package/dist/routes/finance.routes.d.ts +8 -8
  16. package/dist/routes/index.d.ts +9 -0
  17. package/dist/routes/index.d.ts.map +1 -1
  18. package/dist/routes/index.js +6 -0
  19. package/dist/routes/invoices.routes.d.ts +210 -60
  20. package/dist/routes/invoices.routes.d.ts.map +1 -1
  21. package/dist/routes/invoices.routes.js +4 -1
  22. package/dist/routes/monitoring-visualization.routes.d.ts +2 -2
  23. package/dist/routes/notifications.routes.d.ts +12 -12
  24. package/dist/routes/organization-capabilities.routes.d.ts +1671 -0
  25. package/dist/routes/organization-capabilities.routes.d.ts.map +1 -0
  26. package/dist/routes/organization-capabilities.routes.js +74 -0
  27. package/dist/routes/organizations.routes.d.ts +90 -47
  28. package/dist/routes/organizations.routes.d.ts.map +1 -1
  29. package/dist/routes/purchase-orders.routes.d.ts +2061 -0
  30. package/dist/routes/purchase-orders.routes.d.ts.map +1 -0
  31. package/dist/routes/purchase-orders.routes.js +55 -0
  32. package/dist/routes/suppliers.routes.d.ts +96 -96
  33. package/dist/routes/team-payments.routes.d.ts +105 -105
  34. package/dist/routes/team.routes.d.ts +125 -25
  35. package/dist/routes/team.routes.d.ts.map +1 -1
  36. package/dist/routes/trade-cash-events.routes.d.ts +3837 -0
  37. package/dist/routes/trade-cash-events.routes.d.ts.map +1 -0
  38. package/dist/routes/trade-cash-events.routes.js +126 -0
  39. package/dist/routes/waybills.routes.d.ts +229 -15
  40. package/dist/routes/waybills.routes.d.ts.map +1 -1
  41. package/dist/routes/waybills.routes.js +4 -1
  42. package/dist/schemas/categories.schemas.d.ts +21 -21
  43. package/dist/schemas/commodity-deals.schemas.d.ts +116 -18
  44. package/dist/schemas/commodity-deals.schemas.d.ts.map +1 -1
  45. package/dist/schemas/commodity-deals.schemas.js +7 -0
  46. package/dist/schemas/crop-profile.schemas.d.ts +12 -12
  47. package/dist/schemas/farm-enterprises.schemas.d.ts +185 -0
  48. package/dist/schemas/farm-enterprises.schemas.d.ts.map +1 -1
  49. package/dist/schemas/farm-enterprises.schemas.js +21 -0
  50. package/dist/schemas/farms.schemas.d.ts +121 -19
  51. package/dist/schemas/farms.schemas.d.ts.map +1 -1
  52. package/dist/schemas/farms.schemas.js +15 -1
  53. package/dist/schemas/fertigation.schemas.d.ts +36 -36
  54. package/dist/schemas/field-monitoring.schemas.d.ts +2 -2
  55. package/dist/schemas/finance.schemas.d.ts +8 -8
  56. package/dist/schemas/invoices.schemas.d.ts +153 -39
  57. package/dist/schemas/invoices.schemas.d.ts.map +1 -1
  58. package/dist/schemas/invoices.schemas.js +8 -2
  59. package/dist/schemas/notifications.schemas.d.ts +18 -18
  60. package/dist/schemas/organization-capabilities.schemas.d.ts +355 -0
  61. package/dist/schemas/organization-capabilities.schemas.d.ts.map +1 -0
  62. package/dist/schemas/organization-capabilities.schemas.js +19 -0
  63. package/dist/schemas/organizations.schemas.d.ts +105 -46
  64. package/dist/schemas/organizations.schemas.d.ts.map +1 -1
  65. package/dist/schemas/organizations.schemas.js +8 -1
  66. package/dist/schemas/purchase-orders.schemas.d.ts +1031 -0
  67. package/dist/schemas/purchase-orders.schemas.d.ts.map +1 -0
  68. package/dist/schemas/purchase-orders.schemas.js +49 -0
  69. package/dist/schemas/suppliers.schemas.d.ts +96 -96
  70. package/dist/schemas/team-payments.schemas.d.ts +87 -87
  71. package/dist/schemas/team.schemas.d.ts +137 -20
  72. package/dist/schemas/team.schemas.d.ts.map +1 -1
  73. package/dist/schemas/team.schemas.js +29 -1
  74. package/dist/schemas/trade-cash-events.schemas.d.ts +1524 -0
  75. package/dist/schemas/trade-cash-events.schemas.d.ts.map +1 -0
  76. package/dist/schemas/trade-cash-events.schemas.js +131 -0
  77. package/dist/schemas/waybills.schemas.d.ts +177 -9
  78. package/dist/schemas/waybills.schemas.d.ts.map +1 -1
  79. package/dist/schemas/waybills.schemas.js +9 -0
  80. package/package.json +1 -1
@@ -3,6 +3,7 @@ import { z } from 'zod';
3
3
  * Team management schemas - JSON:API compliant
4
4
  */
5
5
  export declare const teamMemberRoleSchema: z.ZodEnum<["owner", "farm-manager", "agronomist", "field-worker", "accountant", "other"]>;
6
+ export declare const farmEnterprisePackSchema: z.ZodEnum<["CROPS", "POULTRY", "AQUACULTURE", "CATTLE", "GOAT"]>;
6
7
  export declare const teamMemberAttributesSchema: z.ZodObject<{
7
8
  farmId: z.ZodString;
8
9
  userId: z.ZodNullable<z.ZodString>;
@@ -10,6 +11,10 @@ export declare const teamMemberAttributesSchema: z.ZodObject<{
10
11
  email: z.ZodString;
11
12
  role: z.ZodEnum<["owner", "farm-manager", "agronomist", "field-worker", "accountant", "other"]>;
12
13
  phone: z.ZodNullable<z.ZodString>;
14
+ /** Enterprise packs this member may open (intersection with farm-enabled packs at runtime). */
15
+ allowedEnterprises: z.ZodDefault<z.ZodArray<z.ZodEnum<["CROPS", "POULTRY", "AQUACULTURE", "CATTLE", "GOAT"]>, "many">>;
16
+ /** Org capability packs (e.g. COMMODITY_TRADE) granted to this farm team member. */
17
+ allowedCapabilities: z.ZodDefault<z.ZodArray<z.ZodEnum<["COMMODITY_TRADE"]>, "many">>;
13
18
  tasksAssigned: z.ZodOptional<z.ZodNumber>;
14
19
  tasksCompleted: z.ZodOptional<z.ZodNumber>;
15
20
  tasksPending: z.ZodOptional<z.ZodNumber>;
@@ -22,9 +27,11 @@ export declare const teamMemberAttributesSchema: z.ZodObject<{
22
27
  updatedAt: string;
23
28
  name: string;
24
29
  phone: string | null;
25
- farmId: string;
26
30
  userId: string | null;
27
31
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
32
+ allowedCapabilities: "COMMODITY_TRADE"[];
33
+ farmId: string;
34
+ allowedEnterprises: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[];
28
35
  tasksCompleted?: number | undefined;
29
36
  tasksAssigned?: number | undefined;
30
37
  tasksPending?: number | undefined;
@@ -34,68 +41,120 @@ export declare const teamMemberAttributesSchema: z.ZodObject<{
34
41
  updatedAt: string;
35
42
  name: string;
36
43
  phone: string | null;
37
- farmId: string;
38
44
  userId: string | null;
39
45
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
46
+ farmId: string;
40
47
  tasksCompleted?: number | undefined;
48
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
49
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
41
50
  tasksAssigned?: number | undefined;
42
51
  tasksPending?: number | undefined;
43
52
  }>;
44
- export declare const createTeamMemberAttributesSchema: z.ZodObject<{
53
+ export declare const createTeamMemberAttributesSchema: z.ZodEffects<z.ZodObject<{
45
54
  name: z.ZodString;
46
55
  email: z.ZodString;
47
56
  role: z.ZodEnum<["owner", "farm-manager", "agronomist", "field-worker", "accountant", "other"]>;
48
57
  phone: z.ZodOptional<z.ZodString>;
49
58
  message: z.ZodOptional<z.ZodString>;
59
+ allowedEnterprises: z.ZodOptional<z.ZodArray<z.ZodEnum<["CROPS", "POULTRY", "AQUACULTURE", "CATTLE", "GOAT"]>, "many">>;
60
+ allowedCapabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<["COMMODITY_TRADE"]>, "many">>;
50
61
  }, "strip", z.ZodTypeAny, {
51
62
  email: string;
52
63
  name: string;
53
64
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
54
65
  message?: string | undefined;
55
66
  phone?: string | undefined;
67
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
68
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
69
+ }, {
70
+ email: string;
71
+ name: string;
72
+ role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
73
+ message?: string | undefined;
74
+ phone?: string | undefined;
75
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
76
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
77
+ }>, {
78
+ email: string;
79
+ name: string;
80
+ role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
81
+ message?: string | undefined;
82
+ phone?: string | undefined;
83
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
84
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
56
85
  }, {
57
86
  email: string;
58
87
  name: string;
59
88
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
60
89
  message?: string | undefined;
61
90
  phone?: string | undefined;
91
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
92
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
62
93
  }>;
63
94
  export declare const updateTeamMemberAttributesSchema: z.ZodObject<{
64
95
  name: z.ZodOptional<z.ZodString>;
65
96
  email: z.ZodOptional<z.ZodString>;
66
97
  role: z.ZodOptional<z.ZodEnum<["owner", "farm-manager", "agronomist", "field-worker", "accountant", "other"]>>;
67
98
  phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
99
+ allowedEnterprises: z.ZodOptional<z.ZodArray<z.ZodEnum<["CROPS", "POULTRY", "AQUACULTURE", "CATTLE", "GOAT"]>, "many">>;
100
+ allowedCapabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<["COMMODITY_TRADE"]>, "many">>;
68
101
  }, "strip", z.ZodTypeAny, {
69
102
  email?: string | undefined;
70
103
  name?: string | undefined;
71
104
  phone?: string | null | undefined;
72
105
  role?: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other" | undefined;
106
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
107
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
73
108
  }, {
74
109
  email?: string | undefined;
75
110
  name?: string | undefined;
76
111
  phone?: string | null | undefined;
77
112
  role?: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other" | undefined;
113
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
114
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
78
115
  }>;
79
116
  export declare const createTeamMemberSchema: z.ZodObject<{
80
117
  type: z.ZodLiteral<"team-members">;
81
- attributes: z.ZodObject<{
118
+ attributes: z.ZodEffects<z.ZodObject<{
82
119
  name: z.ZodString;
83
120
  email: z.ZodString;
84
121
  role: z.ZodEnum<["owner", "farm-manager", "agronomist", "field-worker", "accountant", "other"]>;
85
122
  phone: z.ZodOptional<z.ZodString>;
86
123
  message: z.ZodOptional<z.ZodString>;
124
+ allowedEnterprises: z.ZodOptional<z.ZodArray<z.ZodEnum<["CROPS", "POULTRY", "AQUACULTURE", "CATTLE", "GOAT"]>, "many">>;
125
+ allowedCapabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<["COMMODITY_TRADE"]>, "many">>;
87
126
  }, "strip", z.ZodTypeAny, {
88
127
  email: string;
89
128
  name: string;
90
129
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
91
130
  message?: string | undefined;
92
131
  phone?: string | undefined;
132
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
133
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
93
134
  }, {
94
135
  email: string;
95
136
  name: string;
96
137
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
97
138
  message?: string | undefined;
98
139
  phone?: string | undefined;
140
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
141
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
142
+ }>, {
143
+ email: string;
144
+ name: string;
145
+ role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
146
+ message?: string | undefined;
147
+ phone?: string | undefined;
148
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
149
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
150
+ }, {
151
+ email: string;
152
+ name: string;
153
+ role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
154
+ message?: string | undefined;
155
+ phone?: string | undefined;
156
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
157
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
99
158
  }>;
100
159
  }, "strip", z.ZodTypeAny, {
101
160
  type: "team-members";
@@ -105,6 +164,8 @@ export declare const createTeamMemberSchema: z.ZodObject<{
105
164
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
106
165
  message?: string | undefined;
107
166
  phone?: string | undefined;
167
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
168
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
108
169
  };
109
170
  }, {
110
171
  type: "team-members";
@@ -114,6 +175,8 @@ export declare const createTeamMemberSchema: z.ZodObject<{
114
175
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
115
176
  message?: string | undefined;
116
177
  phone?: string | undefined;
178
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
179
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
117
180
  };
118
181
  }>;
119
182
  export declare const updateTeamMemberSchema: z.ZodObject<{
@@ -124,16 +187,22 @@ export declare const updateTeamMemberSchema: z.ZodObject<{
124
187
  email: z.ZodOptional<z.ZodString>;
125
188
  role: z.ZodOptional<z.ZodEnum<["owner", "farm-manager", "agronomist", "field-worker", "accountant", "other"]>>;
126
189
  phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
190
+ allowedEnterprises: z.ZodOptional<z.ZodArray<z.ZodEnum<["CROPS", "POULTRY", "AQUACULTURE", "CATTLE", "GOAT"]>, "many">>;
191
+ allowedCapabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<["COMMODITY_TRADE"]>, "many">>;
127
192
  }, "strip", z.ZodTypeAny, {
128
193
  email?: string | undefined;
129
194
  name?: string | undefined;
130
195
  phone?: string | null | undefined;
131
196
  role?: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other" | undefined;
197
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
198
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
132
199
  }, {
133
200
  email?: string | undefined;
134
201
  name?: string | undefined;
135
202
  phone?: string | null | undefined;
136
203
  role?: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other" | undefined;
204
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
205
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
137
206
  }>;
138
207
  }, "strip", z.ZodTypeAny, {
139
208
  type: "team-members";
@@ -143,6 +212,8 @@ export declare const updateTeamMemberSchema: z.ZodObject<{
143
212
  name?: string | undefined;
144
213
  phone?: string | null | undefined;
145
214
  role?: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other" | undefined;
215
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
216
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
146
217
  };
147
218
  }, {
148
219
  type: "team-members";
@@ -152,6 +223,8 @@ export declare const updateTeamMemberSchema: z.ZodObject<{
152
223
  name?: string | undefined;
153
224
  phone?: string | null | undefined;
154
225
  role?: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other" | undefined;
226
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
227
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
155
228
  };
156
229
  }>;
157
230
  export declare const teamMemberResourceSchema: z.ZodObject<{
@@ -164,6 +237,10 @@ export declare const teamMemberResourceSchema: z.ZodObject<{
164
237
  email: z.ZodString;
165
238
  role: z.ZodEnum<["owner", "farm-manager", "agronomist", "field-worker", "accountant", "other"]>;
166
239
  phone: z.ZodNullable<z.ZodString>;
240
+ /** Enterprise packs this member may open (intersection with farm-enabled packs at runtime). */
241
+ allowedEnterprises: z.ZodDefault<z.ZodArray<z.ZodEnum<["CROPS", "POULTRY", "AQUACULTURE", "CATTLE", "GOAT"]>, "many">>;
242
+ /** Org capability packs (e.g. COMMODITY_TRADE) granted to this farm team member. */
243
+ allowedCapabilities: z.ZodDefault<z.ZodArray<z.ZodEnum<["COMMODITY_TRADE"]>, "many">>;
167
244
  tasksAssigned: z.ZodOptional<z.ZodNumber>;
168
245
  tasksCompleted: z.ZodOptional<z.ZodNumber>;
169
246
  tasksPending: z.ZodOptional<z.ZodNumber>;
@@ -176,9 +253,11 @@ export declare const teamMemberResourceSchema: z.ZodObject<{
176
253
  updatedAt: string;
177
254
  name: string;
178
255
  phone: string | null;
179
- farmId: string;
180
256
  userId: string | null;
181
257
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
258
+ allowedCapabilities: "COMMODITY_TRADE"[];
259
+ farmId: string;
260
+ allowedEnterprises: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[];
182
261
  tasksCompleted?: number | undefined;
183
262
  tasksAssigned?: number | undefined;
184
263
  tasksPending?: number | undefined;
@@ -188,10 +267,12 @@ export declare const teamMemberResourceSchema: z.ZodObject<{
188
267
  updatedAt: string;
189
268
  name: string;
190
269
  phone: string | null;
191
- farmId: string;
192
270
  userId: string | null;
193
271
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
272
+ farmId: string;
194
273
  tasksCompleted?: number | undefined;
274
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
275
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
195
276
  tasksAssigned?: number | undefined;
196
277
  tasksPending?: number | undefined;
197
278
  }>;
@@ -207,9 +288,11 @@ export declare const teamMemberResourceSchema: z.ZodObject<{
207
288
  updatedAt: string;
208
289
  name: string;
209
290
  phone: string | null;
210
- farmId: string;
211
291
  userId: string | null;
212
292
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
293
+ allowedCapabilities: "COMMODITY_TRADE"[];
294
+ farmId: string;
295
+ allowedEnterprises: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[];
213
296
  tasksCompleted?: number | undefined;
214
297
  tasksAssigned?: number | undefined;
215
298
  tasksPending?: number | undefined;
@@ -226,10 +309,12 @@ export declare const teamMemberResourceSchema: z.ZodObject<{
226
309
  updatedAt: string;
227
310
  name: string;
228
311
  phone: string | null;
229
- farmId: string;
230
312
  userId: string | null;
231
313
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
314
+ farmId: string;
232
315
  tasksCompleted?: number | undefined;
316
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
317
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
233
318
  tasksAssigned?: number | undefined;
234
319
  tasksPending?: number | undefined;
235
320
  };
@@ -248,6 +333,10 @@ export declare const teamMemberResponseSchema: z.ZodObject<{
248
333
  email: z.ZodString;
249
334
  role: z.ZodEnum<["owner", "farm-manager", "agronomist", "field-worker", "accountant", "other"]>;
250
335
  phone: z.ZodNullable<z.ZodString>;
336
+ /** Enterprise packs this member may open (intersection with farm-enabled packs at runtime). */
337
+ allowedEnterprises: z.ZodDefault<z.ZodArray<z.ZodEnum<["CROPS", "POULTRY", "AQUACULTURE", "CATTLE", "GOAT"]>, "many">>;
338
+ /** Org capability packs (e.g. COMMODITY_TRADE) granted to this farm team member. */
339
+ allowedCapabilities: z.ZodDefault<z.ZodArray<z.ZodEnum<["COMMODITY_TRADE"]>, "many">>;
251
340
  tasksAssigned: z.ZodOptional<z.ZodNumber>;
252
341
  tasksCompleted: z.ZodOptional<z.ZodNumber>;
253
342
  tasksPending: z.ZodOptional<z.ZodNumber>;
@@ -260,9 +349,11 @@ export declare const teamMemberResponseSchema: z.ZodObject<{
260
349
  updatedAt: string;
261
350
  name: string;
262
351
  phone: string | null;
263
- farmId: string;
264
352
  userId: string | null;
265
353
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
354
+ allowedCapabilities: "COMMODITY_TRADE"[];
355
+ farmId: string;
356
+ allowedEnterprises: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[];
266
357
  tasksCompleted?: number | undefined;
267
358
  tasksAssigned?: number | undefined;
268
359
  tasksPending?: number | undefined;
@@ -272,10 +363,12 @@ export declare const teamMemberResponseSchema: z.ZodObject<{
272
363
  updatedAt: string;
273
364
  name: string;
274
365
  phone: string | null;
275
- farmId: string;
276
366
  userId: string | null;
277
367
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
368
+ farmId: string;
278
369
  tasksCompleted?: number | undefined;
370
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
371
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
279
372
  tasksAssigned?: number | undefined;
280
373
  tasksPending?: number | undefined;
281
374
  }>;
@@ -291,9 +384,11 @@ export declare const teamMemberResponseSchema: z.ZodObject<{
291
384
  updatedAt: string;
292
385
  name: string;
293
386
  phone: string | null;
294
- farmId: string;
295
387
  userId: string | null;
296
388
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
389
+ allowedCapabilities: "COMMODITY_TRADE"[];
390
+ farmId: string;
391
+ allowedEnterprises: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[];
297
392
  tasksCompleted?: number | undefined;
298
393
  tasksAssigned?: number | undefined;
299
394
  tasksPending?: number | undefined;
@@ -310,10 +405,12 @@ export declare const teamMemberResponseSchema: z.ZodObject<{
310
405
  updatedAt: string;
311
406
  name: string;
312
407
  phone: string | null;
313
- farmId: string;
314
408
  userId: string | null;
315
409
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
410
+ farmId: string;
316
411
  tasksCompleted?: number | undefined;
412
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
413
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
317
414
  tasksAssigned?: number | undefined;
318
415
  tasksPending?: number | undefined;
319
416
  };
@@ -355,9 +452,11 @@ export declare const teamMemberResponseSchema: z.ZodObject<{
355
452
  updatedAt: string;
356
453
  name: string;
357
454
  phone: string | null;
358
- farmId: string;
359
455
  userId: string | null;
360
456
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
457
+ allowedCapabilities: "COMMODITY_TRADE"[];
458
+ farmId: string;
459
+ allowedEnterprises: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[];
361
460
  tasksCompleted?: number | undefined;
362
461
  tasksAssigned?: number | undefined;
363
462
  tasksPending?: number | undefined;
@@ -386,10 +485,12 @@ export declare const teamMemberResponseSchema: z.ZodObject<{
386
485
  updatedAt: string;
387
486
  name: string;
388
487
  phone: string | null;
389
- farmId: string;
390
488
  userId: string | null;
391
489
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
490
+ farmId: string;
392
491
  tasksCompleted?: number | undefined;
492
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
493
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
393
494
  tasksAssigned?: number | undefined;
394
495
  tasksPending?: number | undefined;
395
496
  };
@@ -419,6 +520,10 @@ export declare const teamMemberListResponseSchema: z.ZodObject<{
419
520
  email: z.ZodString;
420
521
  role: z.ZodEnum<["owner", "farm-manager", "agronomist", "field-worker", "accountant", "other"]>;
421
522
  phone: z.ZodNullable<z.ZodString>;
523
+ /** Enterprise packs this member may open (intersection with farm-enabled packs at runtime). */
524
+ allowedEnterprises: z.ZodDefault<z.ZodArray<z.ZodEnum<["CROPS", "POULTRY", "AQUACULTURE", "CATTLE", "GOAT"]>, "many">>;
525
+ /** Org capability packs (e.g. COMMODITY_TRADE) granted to this farm team member. */
526
+ allowedCapabilities: z.ZodDefault<z.ZodArray<z.ZodEnum<["COMMODITY_TRADE"]>, "many">>;
422
527
  tasksAssigned: z.ZodOptional<z.ZodNumber>;
423
528
  tasksCompleted: z.ZodOptional<z.ZodNumber>;
424
529
  tasksPending: z.ZodOptional<z.ZodNumber>;
@@ -431,9 +536,11 @@ export declare const teamMemberListResponseSchema: z.ZodObject<{
431
536
  updatedAt: string;
432
537
  name: string;
433
538
  phone: string | null;
434
- farmId: string;
435
539
  userId: string | null;
436
540
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
541
+ allowedCapabilities: "COMMODITY_TRADE"[];
542
+ farmId: string;
543
+ allowedEnterprises: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[];
437
544
  tasksCompleted?: number | undefined;
438
545
  tasksAssigned?: number | undefined;
439
546
  tasksPending?: number | undefined;
@@ -443,10 +550,12 @@ export declare const teamMemberListResponseSchema: z.ZodObject<{
443
550
  updatedAt: string;
444
551
  name: string;
445
552
  phone: string | null;
446
- farmId: string;
447
553
  userId: string | null;
448
554
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
555
+ farmId: string;
449
556
  tasksCompleted?: number | undefined;
557
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
558
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
450
559
  tasksAssigned?: number | undefined;
451
560
  tasksPending?: number | undefined;
452
561
  }>;
@@ -462,9 +571,11 @@ export declare const teamMemberListResponseSchema: z.ZodObject<{
462
571
  updatedAt: string;
463
572
  name: string;
464
573
  phone: string | null;
465
- farmId: string;
466
574
  userId: string | null;
467
575
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
576
+ allowedCapabilities: "COMMODITY_TRADE"[];
577
+ farmId: string;
578
+ allowedEnterprises: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[];
468
579
  tasksCompleted?: number | undefined;
469
580
  tasksAssigned?: number | undefined;
470
581
  tasksPending?: number | undefined;
@@ -481,10 +592,12 @@ export declare const teamMemberListResponseSchema: z.ZodObject<{
481
592
  updatedAt: string;
482
593
  name: string;
483
594
  phone: string | null;
484
- farmId: string;
485
595
  userId: string | null;
486
596
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
597
+ farmId: string;
487
598
  tasksCompleted?: number | undefined;
599
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
600
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
488
601
  tasksAssigned?: number | undefined;
489
602
  tasksPending?: number | undefined;
490
603
  };
@@ -526,9 +639,11 @@ export declare const teamMemberListResponseSchema: z.ZodObject<{
526
639
  updatedAt: string;
527
640
  name: string;
528
641
  phone: string | null;
529
- farmId: string;
530
642
  userId: string | null;
531
643
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
644
+ allowedCapabilities: "COMMODITY_TRADE"[];
645
+ farmId: string;
646
+ allowedEnterprises: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[];
532
647
  tasksCompleted?: number | undefined;
533
648
  tasksAssigned?: number | undefined;
534
649
  tasksPending?: number | undefined;
@@ -557,10 +672,12 @@ export declare const teamMemberListResponseSchema: z.ZodObject<{
557
672
  updatedAt: string;
558
673
  name: string;
559
674
  phone: string | null;
560
- farmId: string;
561
675
  userId: string | null;
562
676
  role: "owner" | "farm-manager" | "agronomist" | "field-worker" | "accountant" | "other";
677
+ farmId: string;
563
678
  tasksCompleted?: number | undefined;
679
+ allowedCapabilities?: "COMMODITY_TRADE"[] | undefined;
680
+ allowedEnterprises?: ("CROPS" | "POULTRY" | "AQUACULTURE" | "CATTLE" | "GOAT")[] | undefined;
564
681
  tasksAssigned?: number | undefined;
565
682
  tasksPending?: number | undefined;
566
683
  };
@@ -1 +1 @@
1
- {"version":3,"file":"team.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/team.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;GAEG;AAGH,eAAO,MAAM,oBAAoB,2FAO/B,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWb,CAAC;AAG3B,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;EAM3C,CAAC;AAGH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;EAK3C,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGjC,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIjC,CAAC;AAGH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA0E,CAAC;AAGhH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAwD,CAAC;AAC9F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA4D,CAAC;AAGtG,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC1F,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC1F,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
1
+ {"version":3,"file":"team.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/team.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB;;GAEG;AAGH,eAAO,MAAM,oBAAoB,2FAO/B,CAAC;AAEH,eAAO,MAAM,wBAAwB,kEAMnC,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;;IAOrC,+FAA+F;;IAE/F,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM5D,CAAC;AAG3B,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBzC,CAAC;AAGL,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;EAO3C,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGjC,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIjC,CAAC;AAGH,eAAO,MAAM,wBAAwB;;;;;;;;;;QAzDnC,+FAA+F;;QAE/F,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuDyB,CAAC;AAGhH,eAAO,MAAM,wBAAwB;;;;;;;;;;;YA5DnC,+FAA+F;;YAE/F,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DO,CAAC;AAC9F,eAAO,MAAM,4BAA4B;;;;;;;;;;;YA7DvC,+FAA+F;;YAE/F,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2De,CAAC;AAGtG,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC1F,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC1F,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { timestampsSchema, createJsonApiResourceSchema, jsonApiSingleResponseSchema, jsonApiCollectionResponseSchema } from './common.schemas';
3
+ import { organizationCapabilityGrantSchema } from './organizations.schemas';
3
4
  /**
4
5
  * Team management schemas - JSON:API compliant
5
6
  */
@@ -12,6 +13,13 @@ export const teamMemberRoleSchema = z.enum([
12
13
  'accountant',
13
14
  'other',
14
15
  ]);
16
+ export const farmEnterprisePackSchema = z.enum([
17
+ 'CROPS',
18
+ 'POULTRY',
19
+ 'AQUACULTURE',
20
+ 'CATTLE',
21
+ 'GOAT',
22
+ ]);
15
23
  // Team member attributes schema (for JSON:API attributes object)
16
24
  export const teamMemberAttributesSchema = z.object({
17
25
  farmId: z.string().uuid(),
@@ -20,18 +28,36 @@ export const teamMemberAttributesSchema = z.object({
20
28
  email: z.string().email(),
21
29
  role: teamMemberRoleSchema,
22
30
  phone: z.string().nullable(),
31
+ /** Enterprise packs this member may open (intersection with farm-enabled packs at runtime). */
32
+ allowedEnterprises: z.array(farmEnterprisePackSchema).default([]),
33
+ /** Org capability packs (e.g. COMMODITY_TRADE) granted to this farm team member. */
34
+ allowedCapabilities: z.array(organizationCapabilityGrantSchema).default([]),
23
35
  // Statistics (optional, for team dashboard)
24
36
  tasksAssigned: z.number().int().nonnegative().optional(),
25
37
  tasksCompleted: z.number().int().nonnegative().optional(),
26
38
  tasksPending: z.number().int().nonnegative().optional(),
27
39
  }).merge(timestampsSchema);
28
40
  // Create team member attributes (input)
29
- export const createTeamMemberAttributesSchema = z.object({
41
+ export const createTeamMemberAttributesSchema = z
42
+ .object({
30
43
  name: z.string().min(1).max(200),
31
44
  email: z.string().email(),
32
45
  role: teamMemberRoleSchema,
33
46
  phone: z.string().optional(),
34
47
  message: z.string().optional(), // Optional personal message for invitation
48
+ allowedEnterprises: z.array(farmEnterprisePackSchema).optional(),
49
+ allowedCapabilities: z.array(organizationCapabilityGrantSchema).optional(),
50
+ })
51
+ .superRefine((data, ctx) => {
52
+ const hasFarm = (data.allowedEnterprises?.length ?? 0) > 0;
53
+ const hasTrade = (data.allowedCapabilities ?? []).includes('COMMODITY_TRADE');
54
+ if (!hasFarm && !hasTrade) {
55
+ ctx.addIssue({
56
+ code: z.ZodIssueCode.custom,
57
+ message: 'Grant at least one farm pack or Commodity Trade access',
58
+ path: ['allowedEnterprises'],
59
+ });
60
+ }
35
61
  });
36
62
  // Update team member attributes (input)
37
63
  export const updateTeamMemberAttributesSchema = z.object({
@@ -39,6 +65,8 @@ export const updateTeamMemberAttributesSchema = z.object({
39
65
  email: z.string().email().optional(),
40
66
  role: teamMemberRoleSchema.optional(),
41
67
  phone: z.string().nullable().optional(),
68
+ allowedEnterprises: z.array(farmEnterprisePackSchema).optional(),
69
+ allowedCapabilities: z.array(organizationCapabilityGrantSchema).optional(),
42
70
  });
43
71
  // Create team member input (JSON:API format)
44
72
  export const createTeamMemberSchema = z.object({