@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.
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/routes/categories.routes.d.ts +26 -26
- package/dist/routes/commodity-deals.routes.d.ts +217 -42
- package/dist/routes/commodity-deals.routes.d.ts.map +1 -1
- package/dist/routes/crop-profile.routes.d.ts +8 -8
- package/dist/routes/farm-enterprises.routes.d.ts +395 -0
- package/dist/routes/farm-enterprises.routes.d.ts.map +1 -1
- package/dist/routes/farm-enterprises.routes.js +14 -1
- package/dist/routes/farms.routes.d.ts +73 -20
- package/dist/routes/farms.routes.d.ts.map +1 -1
- package/dist/routes/fertigation.routes.d.ts +96 -96
- package/dist/routes/field-monitoring.routes.d.ts +2 -2
- package/dist/routes/finance.routes.d.ts +8 -8
- package/dist/routes/index.d.ts +9 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +6 -0
- package/dist/routes/invoices.routes.d.ts +210 -60
- package/dist/routes/invoices.routes.d.ts.map +1 -1
- package/dist/routes/invoices.routes.js +4 -1
- package/dist/routes/monitoring-visualization.routes.d.ts +2 -2
- package/dist/routes/notifications.routes.d.ts +12 -12
- package/dist/routes/organization-capabilities.routes.d.ts +1671 -0
- package/dist/routes/organization-capabilities.routes.d.ts.map +1 -0
- package/dist/routes/organization-capabilities.routes.js +74 -0
- package/dist/routes/organizations.routes.d.ts +90 -47
- package/dist/routes/organizations.routes.d.ts.map +1 -1
- package/dist/routes/purchase-orders.routes.d.ts +2061 -0
- package/dist/routes/purchase-orders.routes.d.ts.map +1 -0
- package/dist/routes/purchase-orders.routes.js +55 -0
- package/dist/routes/suppliers.routes.d.ts +96 -96
- package/dist/routes/team-payments.routes.d.ts +105 -105
- package/dist/routes/team.routes.d.ts +125 -25
- package/dist/routes/team.routes.d.ts.map +1 -1
- package/dist/routes/trade-cash-events.routes.d.ts +3837 -0
- package/dist/routes/trade-cash-events.routes.d.ts.map +1 -0
- package/dist/routes/trade-cash-events.routes.js +126 -0
- package/dist/routes/waybills.routes.d.ts +229 -15
- package/dist/routes/waybills.routes.d.ts.map +1 -1
- package/dist/routes/waybills.routes.js +4 -1
- package/dist/schemas/categories.schemas.d.ts +21 -21
- package/dist/schemas/commodity-deals.schemas.d.ts +116 -18
- package/dist/schemas/commodity-deals.schemas.d.ts.map +1 -1
- package/dist/schemas/commodity-deals.schemas.js +7 -0
- package/dist/schemas/crop-profile.schemas.d.ts +12 -12
- package/dist/schemas/farm-enterprises.schemas.d.ts +185 -0
- package/dist/schemas/farm-enterprises.schemas.d.ts.map +1 -1
- package/dist/schemas/farm-enterprises.schemas.js +21 -0
- package/dist/schemas/farms.schemas.d.ts +121 -19
- package/dist/schemas/farms.schemas.d.ts.map +1 -1
- package/dist/schemas/farms.schemas.js +15 -1
- package/dist/schemas/fertigation.schemas.d.ts +36 -36
- package/dist/schemas/field-monitoring.schemas.d.ts +2 -2
- package/dist/schemas/finance.schemas.d.ts +8 -8
- package/dist/schemas/invoices.schemas.d.ts +153 -39
- package/dist/schemas/invoices.schemas.d.ts.map +1 -1
- package/dist/schemas/invoices.schemas.js +8 -2
- package/dist/schemas/notifications.schemas.d.ts +18 -18
- package/dist/schemas/organization-capabilities.schemas.d.ts +355 -0
- package/dist/schemas/organization-capabilities.schemas.d.ts.map +1 -0
- package/dist/schemas/organization-capabilities.schemas.js +19 -0
- package/dist/schemas/organizations.schemas.d.ts +105 -46
- package/dist/schemas/organizations.schemas.d.ts.map +1 -1
- package/dist/schemas/organizations.schemas.js +8 -1
- package/dist/schemas/purchase-orders.schemas.d.ts +1031 -0
- package/dist/schemas/purchase-orders.schemas.d.ts.map +1 -0
- package/dist/schemas/purchase-orders.schemas.js +49 -0
- package/dist/schemas/suppliers.schemas.d.ts +96 -96
- package/dist/schemas/team-payments.schemas.d.ts +87 -87
- package/dist/schemas/team.schemas.d.ts +137 -20
- package/dist/schemas/team.schemas.d.ts.map +1 -1
- package/dist/schemas/team.schemas.js +29 -1
- package/dist/schemas/trade-cash-events.schemas.d.ts +1524 -0
- package/dist/schemas/trade-cash-events.schemas.d.ts.map +1 -0
- package/dist/schemas/trade-cash-events.schemas.js +131 -0
- package/dist/schemas/waybills.schemas.d.ts +177 -9
- package/dist/schemas/waybills.schemas.d.ts.map +1 -1
- package/dist/schemas/waybills.schemas.js +9 -0
- 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;
|
|
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
|
|
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({
|