boondmanager-mcp-server 1.4.0 → 1.5.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/constants.d.ts +2 -2
- package/dist/constants.js +2 -2
- package/dist/schemas/index.d.ts +301 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +247 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/services/boond-client.d.ts +3 -2
- package/dist/services/boond-client.d.ts.map +1 -1
- package/dist/services/boond-client.js +25 -3
- package/dist/services/boond-client.js.map +1 -1
- package/dist/tools/candidates.d.ts.map +1 -1
- package/dist/tools/candidates.js +22 -2
- package/dist/tools/candidates.js.map +1 -1
- package/dist/tools/companies.d.ts.map +1 -1
- package/dist/tools/companies.js +22 -2
- package/dist/tools/companies.js.map +1 -1
- package/dist/tools/contacts.d.ts.map +1 -1
- package/dist/tools/contacts.js +22 -2
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/crud-factory.d.ts +6 -1
- package/dist/tools/crud-factory.d.ts.map +1 -1
- package/dist/tools/crud-factory.js +9 -6
- package/dist/tools/crud-factory.js.map +1 -1
- package/dist/tools/opportunities.d.ts.map +1 -1
- package/dist/tools/opportunities.js +21 -2
- package/dist/tools/opportunities.js.map +1 -1
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +21 -2
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/resources.d.ts.map +1 -1
- package/dist/tools/resources.js +23 -2
- package/dist/tools/resources.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
package/dist/constants.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const DEFAULT_BASE_URL = "https://ui.boondmanager.com/api";
|
|
2
2
|
export declare const CHARACTER_LIMIT = 50000;
|
|
3
|
-
export declare const DEFAULT_PAGE_SIZE =
|
|
4
|
-
export declare const MAX_PAGE_SIZE =
|
|
3
|
+
export declare const DEFAULT_PAGE_SIZE = 30;
|
|
4
|
+
export declare const MAX_PAGE_SIZE = 500;
|
|
5
5
|
export declare const API_PATHS: {
|
|
6
6
|
readonly candidates: "/candidates";
|
|
7
7
|
readonly resources: "/resources";
|
package/dist/constants.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// BoondManager API constants
|
|
2
2
|
export const DEFAULT_BASE_URL = "https://ui.boondmanager.com/api";
|
|
3
3
|
export const CHARACTER_LIMIT = 50000;
|
|
4
|
-
export const DEFAULT_PAGE_SIZE =
|
|
5
|
-
export const MAX_PAGE_SIZE =
|
|
4
|
+
export const DEFAULT_PAGE_SIZE = 30;
|
|
5
|
+
export const MAX_PAGE_SIZE = 500;
|
|
6
6
|
// API paths
|
|
7
7
|
export const API_PATHS = {
|
|
8
8
|
candidates: "/candidates",
|
package/dist/schemas/index.d.ts
CHANGED
|
@@ -4,6 +4,301 @@ export declare const SearchSchema: z.ZodObject<{
|
|
|
4
4
|
page: z.ZodDefault<z.ZodNumber>;
|
|
5
5
|
pageSize: z.ZodDefault<z.ZodNumber>;
|
|
6
6
|
}, z.core.$strict>;
|
|
7
|
+
export declare const ResourceSearchSchema: z.ZodObject<{
|
|
8
|
+
keywords: z.ZodOptional<z.ZodString>;
|
|
9
|
+
keywordsType: z.ZodOptional<z.ZodEnum<{
|
|
10
|
+
firstName: "firstName";
|
|
11
|
+
lastName: "lastName";
|
|
12
|
+
title: "title";
|
|
13
|
+
resumeTd: "resumeTd";
|
|
14
|
+
fullName: "fullName";
|
|
15
|
+
strictFullName: "strictFullName";
|
|
16
|
+
emails: "emails";
|
|
17
|
+
titleSkills: "titleSkills";
|
|
18
|
+
phones: "phones";
|
|
19
|
+
reference: "reference";
|
|
20
|
+
resume: "resume";
|
|
21
|
+
td: "td";
|
|
22
|
+
}>>;
|
|
23
|
+
perimeterManagers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
24
|
+
perimeterAgencies: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
25
|
+
perimeterPoles: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
26
|
+
perimeterBusinessUnits: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
27
|
+
perimeterDynamic: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
28
|
+
data: "data";
|
|
29
|
+
agencies: "agencies";
|
|
30
|
+
poles: "poles";
|
|
31
|
+
businessUnits: "businessUnits";
|
|
32
|
+
managers: "managers";
|
|
33
|
+
}>>>;
|
|
34
|
+
narrowPerimeter: z.ZodOptional<z.ZodBoolean>;
|
|
35
|
+
resourceStates: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
36
|
+
excludeResourceStates: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
37
|
+
resourceTypes: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
38
|
+
excludeResourceTypes: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
39
|
+
activityAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
40
|
+
expertiseAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
41
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
42
|
+
experiences: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
43
|
+
trainings: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
44
|
+
mobilityAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
45
|
+
languages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
46
|
+
flags: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
47
|
+
period: z.ZodOptional<z.ZodString>;
|
|
48
|
+
startDate: z.ZodOptional<z.ZodString>;
|
|
49
|
+
endDate: z.ZodOptional<z.ZodString>;
|
|
50
|
+
providerCompanies: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
51
|
+
coordinates: z.ZodOptional<z.ZodString>;
|
|
52
|
+
location: z.ZodOptional<z.ZodString>;
|
|
53
|
+
geoDistance: z.ZodOptional<z.ZodNumber>;
|
|
54
|
+
excludeManager: z.ZodOptional<z.ZodBoolean>;
|
|
55
|
+
shields: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
56
|
+
minimum: "minimum";
|
|
57
|
+
uncomplete: "uncomplete";
|
|
58
|
+
complete: "complete";
|
|
59
|
+
}>>>;
|
|
60
|
+
sort: z.ZodOptional<z.ZodString>;
|
|
61
|
+
order: z.ZodOptional<z.ZodEnum<{
|
|
62
|
+
asc: "asc";
|
|
63
|
+
desc: "desc";
|
|
64
|
+
}>>;
|
|
65
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
66
|
+
pageSize: z.ZodDefault<z.ZodNumber>;
|
|
67
|
+
}, z.core.$strict>;
|
|
68
|
+
export declare const CandidateSearchSchema: z.ZodObject<{
|
|
69
|
+
keywords: z.ZodOptional<z.ZodString>;
|
|
70
|
+
keywordsType: z.ZodOptional<z.ZodEnum<{
|
|
71
|
+
firstName: "firstName";
|
|
72
|
+
lastName: "lastName";
|
|
73
|
+
title: "title";
|
|
74
|
+
resumeTd: "resumeTd";
|
|
75
|
+
fullName: "fullName";
|
|
76
|
+
strictFullName: "strictFullName";
|
|
77
|
+
emails: "emails";
|
|
78
|
+
titleSkills: "titleSkills";
|
|
79
|
+
phones: "phones";
|
|
80
|
+
reference: "reference";
|
|
81
|
+
resume: "resume";
|
|
82
|
+
td: "td";
|
|
83
|
+
}>>;
|
|
84
|
+
perimeterManagers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
85
|
+
perimeterAgencies: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
86
|
+
perimeterPoles: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
87
|
+
perimeterBusinessUnits: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
88
|
+
perimeterDynamic: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
89
|
+
data: "data";
|
|
90
|
+
agencies: "agencies";
|
|
91
|
+
poles: "poles";
|
|
92
|
+
businessUnits: "businessUnits";
|
|
93
|
+
managers: "managers";
|
|
94
|
+
}>>>;
|
|
95
|
+
perimeterManagersType: z.ZodOptional<z.ZodEnum<{
|
|
96
|
+
main: "main";
|
|
97
|
+
hr: "hr";
|
|
98
|
+
}>>;
|
|
99
|
+
narrowPerimeter: z.ZodOptional<z.ZodBoolean>;
|
|
100
|
+
candidateStates: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
101
|
+
candidateTypes: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
102
|
+
contractTypes: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
103
|
+
availabilityTypes: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
104
|
+
activityAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
105
|
+
expertiseAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
106
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
107
|
+
experiences: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
108
|
+
trainings: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
109
|
+
mobilityAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
110
|
+
languages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
111
|
+
evaluations: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
112
|
+
sources: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
113
|
+
flags: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
114
|
+
period: z.ZodOptional<z.ZodString>;
|
|
115
|
+
startDate: z.ZodOptional<z.ZodString>;
|
|
116
|
+
endDate: z.ZodOptional<z.ZodString>;
|
|
117
|
+
providerCompanies: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
118
|
+
coordinates: z.ZodOptional<z.ZodString>;
|
|
119
|
+
location: z.ZodOptional<z.ZodString>;
|
|
120
|
+
geoDistance: z.ZodOptional<z.ZodNumber>;
|
|
121
|
+
shields: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
122
|
+
minimum: "minimum";
|
|
123
|
+
uncomplete: "uncomplete";
|
|
124
|
+
complete: "complete";
|
|
125
|
+
}>>>;
|
|
126
|
+
sort: z.ZodOptional<z.ZodString>;
|
|
127
|
+
order: z.ZodOptional<z.ZodEnum<{
|
|
128
|
+
asc: "asc";
|
|
129
|
+
desc: "desc";
|
|
130
|
+
}>>;
|
|
131
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
132
|
+
pageSize: z.ZodDefault<z.ZodNumber>;
|
|
133
|
+
}, z.core.$strict>;
|
|
134
|
+
export declare const ContactSearchSchema: z.ZodObject<{
|
|
135
|
+
keywords: z.ZodOptional<z.ZodString>;
|
|
136
|
+
keywordsType: z.ZodOptional<z.ZodEnum<{
|
|
137
|
+
default: "default";
|
|
138
|
+
firstName: "firstName";
|
|
139
|
+
lastName: "lastName";
|
|
140
|
+
fullName: "fullName";
|
|
141
|
+
strictFullName: "strictFullName";
|
|
142
|
+
emails: "emails";
|
|
143
|
+
phones: "phones";
|
|
144
|
+
companyFullName: "companyFullName";
|
|
145
|
+
socialNetworks: "socialNetworks";
|
|
146
|
+
}>>;
|
|
147
|
+
perimeterManagers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
148
|
+
perimeterAgencies: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
149
|
+
perimeterPoles: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
150
|
+
perimeterBusinessUnits: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
151
|
+
perimeterDynamic: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
152
|
+
data: "data";
|
|
153
|
+
agencies: "agencies";
|
|
154
|
+
poles: "poles";
|
|
155
|
+
businessUnits: "businessUnits";
|
|
156
|
+
managers: "managers";
|
|
157
|
+
}>>>;
|
|
158
|
+
narrowPerimeter: z.ZodOptional<z.ZodBoolean>;
|
|
159
|
+
states: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
160
|
+
companyStates: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
161
|
+
typesOf: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
162
|
+
origins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
163
|
+
activityAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
164
|
+
expertiseAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
165
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
166
|
+
influencers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
167
|
+
flags: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
168
|
+
period: z.ZodOptional<z.ZodString>;
|
|
169
|
+
startDate: z.ZodOptional<z.ZodString>;
|
|
170
|
+
endDate: z.ZodOptional<z.ZodString>;
|
|
171
|
+
completeness: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
172
|
+
shields: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
173
|
+
minimum: "minimum";
|
|
174
|
+
uncomplete: "uncomplete";
|
|
175
|
+
complete: "complete";
|
|
176
|
+
}>>>;
|
|
177
|
+
sort: z.ZodOptional<z.ZodString>;
|
|
178
|
+
order: z.ZodOptional<z.ZodEnum<{
|
|
179
|
+
asc: "asc";
|
|
180
|
+
desc: "desc";
|
|
181
|
+
}>>;
|
|
182
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
183
|
+
pageSize: z.ZodDefault<z.ZodNumber>;
|
|
184
|
+
}, z.core.$strict>;
|
|
185
|
+
export declare const CompanySearchSchema: z.ZodObject<{
|
|
186
|
+
keywords: z.ZodOptional<z.ZodString>;
|
|
187
|
+
keywordsType: z.ZodOptional<z.ZodEnum<{
|
|
188
|
+
default: "default";
|
|
189
|
+
name: "name";
|
|
190
|
+
emails: "emails";
|
|
191
|
+
phones: "phones";
|
|
192
|
+
socialNetworks: "socialNetworks";
|
|
193
|
+
}>>;
|
|
194
|
+
perimeterManagers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
195
|
+
perimeterAgencies: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
196
|
+
perimeterPoles: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
197
|
+
perimeterBusinessUnits: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
198
|
+
perimeterDynamic: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
199
|
+
data: "data";
|
|
200
|
+
agencies: "agencies";
|
|
201
|
+
poles: "poles";
|
|
202
|
+
businessUnits: "businessUnits";
|
|
203
|
+
managers: "managers";
|
|
204
|
+
}>>>;
|
|
205
|
+
narrowPerimeter: z.ZodOptional<z.ZodBoolean>;
|
|
206
|
+
states: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
207
|
+
expertiseAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
208
|
+
origins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
209
|
+
influencers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
210
|
+
flags: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
211
|
+
period: z.ZodOptional<z.ZodString>;
|
|
212
|
+
startDate: z.ZodOptional<z.ZodString>;
|
|
213
|
+
endDate: z.ZodOptional<z.ZodString>;
|
|
214
|
+
shields: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
215
|
+
minimum: "minimum";
|
|
216
|
+
uncomplete: "uncomplete";
|
|
217
|
+
complete: "complete";
|
|
218
|
+
}>>>;
|
|
219
|
+
sort: z.ZodOptional<z.ZodString>;
|
|
220
|
+
order: z.ZodOptional<z.ZodEnum<{
|
|
221
|
+
asc: "asc";
|
|
222
|
+
desc: "desc";
|
|
223
|
+
}>>;
|
|
224
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
225
|
+
pageSize: z.ZodDefault<z.ZodNumber>;
|
|
226
|
+
}, z.core.$strict>;
|
|
227
|
+
export declare const OpportunitySearchSchema: z.ZodObject<{
|
|
228
|
+
keywords: z.ZodOptional<z.ZodString>;
|
|
229
|
+
perimeterManagers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
230
|
+
perimeterAgencies: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
231
|
+
perimeterPoles: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
232
|
+
perimeterBusinessUnits: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
233
|
+
perimeterDynamic: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
234
|
+
data: "data";
|
|
235
|
+
agencies: "agencies";
|
|
236
|
+
poles: "poles";
|
|
237
|
+
businessUnits: "businessUnits";
|
|
238
|
+
managers: "managers";
|
|
239
|
+
}>>>;
|
|
240
|
+
perimeterManagersType: z.ZodOptional<z.ZodEnum<{
|
|
241
|
+
main: "main";
|
|
242
|
+
hr: "hr";
|
|
243
|
+
}>>;
|
|
244
|
+
narrowPerimeter: z.ZodOptional<z.ZodBoolean>;
|
|
245
|
+
opportunityStates: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
246
|
+
opportunityTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
247
|
+
positioningStates: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
248
|
+
expertiseAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
249
|
+
activityAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
250
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
251
|
+
places: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
252
|
+
durations: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
253
|
+
origins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
254
|
+
flags: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
255
|
+
period: z.ZodOptional<z.ZodString>;
|
|
256
|
+
startDate: z.ZodOptional<z.ZodString>;
|
|
257
|
+
endDate: z.ZodOptional<z.ZodString>;
|
|
258
|
+
shields: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
259
|
+
minimum: "minimum";
|
|
260
|
+
uncomplete: "uncomplete";
|
|
261
|
+
complete: "complete";
|
|
262
|
+
}>>>;
|
|
263
|
+
sort: z.ZodOptional<z.ZodString>;
|
|
264
|
+
order: z.ZodOptional<z.ZodEnum<{
|
|
265
|
+
asc: "asc";
|
|
266
|
+
desc: "desc";
|
|
267
|
+
}>>;
|
|
268
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
269
|
+
pageSize: z.ZodDefault<z.ZodNumber>;
|
|
270
|
+
}, z.core.$strict>;
|
|
271
|
+
export declare const ProjectSearchSchema: z.ZodObject<{
|
|
272
|
+
keywords: z.ZodOptional<z.ZodString>;
|
|
273
|
+
perimeterManagers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
274
|
+
perimeterAgencies: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
275
|
+
perimeterPoles: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
276
|
+
perimeterBusinessUnits: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
277
|
+
perimeterDynamic: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
278
|
+
data: "data";
|
|
279
|
+
agencies: "agencies";
|
|
280
|
+
poles: "poles";
|
|
281
|
+
businessUnits: "businessUnits";
|
|
282
|
+
managers: "managers";
|
|
283
|
+
}>>>;
|
|
284
|
+
narrowPerimeter: z.ZodOptional<z.ZodBoolean>;
|
|
285
|
+
projectStates: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
286
|
+
projectTypes: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
287
|
+
companies: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
288
|
+
expertiseAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
289
|
+
activityAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
290
|
+
flags: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
291
|
+
period: z.ZodOptional<z.ZodString>;
|
|
292
|
+
startDate: z.ZodOptional<z.ZodString>;
|
|
293
|
+
endDate: z.ZodOptional<z.ZodString>;
|
|
294
|
+
sort: z.ZodOptional<z.ZodString>;
|
|
295
|
+
order: z.ZodOptional<z.ZodEnum<{
|
|
296
|
+
asc: "asc";
|
|
297
|
+
desc: "desc";
|
|
298
|
+
}>>;
|
|
299
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
300
|
+
pageSize: z.ZodDefault<z.ZodNumber>;
|
|
301
|
+
}, z.core.$strict>;
|
|
7
302
|
export declare const IdSchema: z.ZodObject<{
|
|
8
303
|
id: z.ZodString;
|
|
9
304
|
}, z.core.$strict>;
|
|
@@ -339,6 +634,12 @@ export declare const DictionaryGetSchema: z.ZodObject<{
|
|
|
339
634
|
dictionaryType: z.ZodString;
|
|
340
635
|
}, z.core.$strict>;
|
|
341
636
|
export type SearchInput = z.infer<typeof SearchSchema>;
|
|
637
|
+
export type ResourceSearchInput = z.infer<typeof ResourceSearchSchema>;
|
|
638
|
+
export type CandidateSearchInput = z.infer<typeof CandidateSearchSchema>;
|
|
639
|
+
export type ContactSearchInput = z.infer<typeof ContactSearchSchema>;
|
|
640
|
+
export type CompanySearchInput = z.infer<typeof CompanySearchSchema>;
|
|
641
|
+
export type OpportunitySearchInput = z.infer<typeof OpportunitySearchSchema>;
|
|
642
|
+
export type ProjectSearchInput = z.infer<typeof ProjectSearchSchema>;
|
|
342
643
|
export type IdInput = z.infer<typeof IdSchema>;
|
|
343
644
|
export type IdTabInput = z.infer<typeof IdTabSchema>;
|
|
344
645
|
export type ResourceTimesheetInput = z.infer<typeof ResourceTimesheetSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas/index.js
CHANGED
|
@@ -7,6 +7,253 @@ export const SearchSchema = z.object({
|
|
|
7
7
|
pageSize: z.number().int().min(1).max(MAX_PAGE_SIZE).default(DEFAULT_PAGE_SIZE)
|
|
8
8
|
.describe(`Nombre de résultats par page (max: ${MAX_PAGE_SIZE}, défaut: ${DEFAULT_PAGE_SIZE})`),
|
|
9
9
|
}).strict();
|
|
10
|
+
// ---- Reusable filter field helpers ----
|
|
11
|
+
// IMPORTANT: input field names below MUST match the BoondManager API query parameter names
|
|
12
|
+
// exactly (e.g., perimeterManagers, resourceStates, opportunityStates). buildSearchQuery
|
|
13
|
+
// passes them through as `key[]=value` for arrays. See https://doc.boondmanager.com/api-externe/
|
|
14
|
+
const pageField = z.number().int().min(1).default(1).describe("Numéro de page (défaut: 1)");
|
|
15
|
+
const pageSizeField = z.number().int().min(1).max(MAX_PAGE_SIZE).default(DEFAULT_PAGE_SIZE)
|
|
16
|
+
.describe(`Nombre de résultats par page (max: ${MAX_PAGE_SIZE}, défaut: ${DEFAULT_PAGE_SIZE})`);
|
|
17
|
+
const sortField = z.string().optional().describe("Champ de tri (ex: lastName, firstName, updateDate)");
|
|
18
|
+
const orderField = z.enum(["asc", "desc"]).optional().describe("Ordre de tri (asc/desc)");
|
|
19
|
+
const intArray = (doc) => z.array(z.number().int()).optional().describe(doc);
|
|
20
|
+
const strArray = (doc) => z.array(z.string()).optional().describe(doc);
|
|
21
|
+
// Shared "perimeter" filters available on every entity search (from RAML trait `searchable`).
|
|
22
|
+
// These are the CORRECT filters for "my team / my agency / my N-1" — NOT the old `mainManagers`.
|
|
23
|
+
const perimeterManagersField = intArray("IDs des managers (ressources). Conserve les entités dont le responsable est l'un de ces managers. "
|
|
24
|
+
+ "Pour 'mon équipe / N-1 d'une personne X', passer [X_id]. Obtenir son propre ID via boond_application_current_user.");
|
|
25
|
+
const perimeterAgenciesField = intArray("IDs d'agences. Conserve les entités dont le responsable appartient à ces agences.");
|
|
26
|
+
const perimeterPolesField = intArray("IDs de pôles. Conserve les entités dont le responsable appartient à ces pôles.");
|
|
27
|
+
const perimeterBusinessUnitsField = intArray("IDs de business units. Conserve les entités dont le responsable appartient à ces BU.");
|
|
28
|
+
const perimeterDynamicField = z.array(z.enum(["data", "agencies", "poles", "businessUnits", "managers"])).optional().describe("Périmètre dynamique relatif à l'utilisateur courant (raccourci sans avoir à connaître son propre ID). "
|
|
29
|
+
+ "Valeurs : 'data' (mes propres données), 'managers' (mon équipe / mes N-1), 'agencies' (mes agences), "
|
|
30
|
+
+ "'poles' (mes pôles), 'businessUnits' (mes BU). Combinable.");
|
|
31
|
+
const narrowPerimeterField = z.boolean().optional().describe("Si true, jointure ET entre les filtres `perimeter*` (au lieu de OU par défaut).");
|
|
32
|
+
const startDateField = z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional()
|
|
33
|
+
.describe("Date de début (YYYY-MM-DD), à utiliser avec `period`.");
|
|
34
|
+
const endDateField = z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional()
|
|
35
|
+
.describe("Date de fin (YYYY-MM-DD), à utiliser avec `period`.");
|
|
36
|
+
// ---- Resource search schema (collaborateurs internes) ----
|
|
37
|
+
// Source: https://doc.boondmanager.com/api-externe/raml-build/resources/resources/search.raml
|
|
38
|
+
export const ResourceSearchSchema = z.object({
|
|
39
|
+
keywords: z.string().optional().describe("Mots-clés (par défaut, recherche dans CV + dossier technique). Pour cibler un champ précis, "
|
|
40
|
+
+ "fournir aussi `keywordsType` (ex: lastName, firstName, fullName, emails, title, titleSkills, phones, reference)."),
|
|
41
|
+
keywordsType: z.enum([
|
|
42
|
+
"resumeTd", "lastName", "firstName", "fullName", "strictFullName",
|
|
43
|
+
"emails", "title", "titleSkills", "phones", "reference", "resume", "td",
|
|
44
|
+
]).optional().describe("Champ ciblé par `keywords`. Défaut: 'resumeTd' (CV + dossier technique). "
|
|
45
|
+
+ "Pour 'fullName' utiliser `keywords = 'NOM#PRENOM'`."),
|
|
46
|
+
perimeterManagers: perimeterManagersField,
|
|
47
|
+
perimeterAgencies: perimeterAgenciesField,
|
|
48
|
+
perimeterPoles: perimeterPolesField,
|
|
49
|
+
perimeterBusinessUnits: perimeterBusinessUnitsField,
|
|
50
|
+
perimeterDynamic: perimeterDynamicField,
|
|
51
|
+
narrowPerimeter: narrowPerimeterField,
|
|
52
|
+
resourceStates: intArray("IDs d'états de ressource (dictionnaire setting.state.resource via boond_application_dictionary)."),
|
|
53
|
+
excludeResourceStates: intArray("IDs d'états de ressource à EXCLURE."),
|
|
54
|
+
resourceTypes: intArray("IDs de types de ressource (dictionnaire setting.typeOf.resource)."),
|
|
55
|
+
excludeResourceTypes: intArray("IDs de types de ressource à EXCLURE."),
|
|
56
|
+
activityAreas: strArray("IDs de secteurs d'activité (dictionnaire setting.activityArea)."),
|
|
57
|
+
expertiseAreas: strArray("IDs de domaines d'expertise (dictionnaire setting.expertiseArea)."),
|
|
58
|
+
tools: strArray("IDs d'outils/technos (dictionnaire setting.tool). Logique OU par défaut. "
|
|
59
|
+
+ "Pour ET, ajouter '#AND#' en 1er élément: tools=['#AND#','12','34']."),
|
|
60
|
+
experiences: intArray("IDs de niveaux d'expérience (dictionnaire setting.experience)."),
|
|
61
|
+
trainings: strArray("IDs de formations (dictionnaire setting.training)."),
|
|
62
|
+
mobilityAreas: strArray("IDs de zones de mobilité (dictionnaire setting.mobilityArea)."),
|
|
63
|
+
languages: strArray("Langues parlées au format `langueId|niveauId` (dictionnaires setting.languageSpoken et setting.languageLevel). Ex: ['anglais|courant']."),
|
|
64
|
+
flags: intArray("IDs de tags (drapeaux) attachés à la ressource."),
|
|
65
|
+
period: z.string().optional().describe("Champ temporel pour filtrer par période. Valeurs courantes: 'available' (disponibilité), "
|
|
66
|
+
+ "'working' (en mission hors interne), 'workingAll', 'absent', 'idle', 'hired', 'left', "
|
|
67
|
+
+ "'employed', 'unemployed', 'updated', 'arrival', 'birthday', 'seniority', 'present', "
|
|
68
|
+
+ "'noAction'/'withActions'/'withoutActions'/'withAbsences'/'withoutAbsences'. "
|
|
69
|
+
+ "À combiner avec `startDate` + `endDate`."),
|
|
70
|
+
startDate: startDateField,
|
|
71
|
+
endDate: endDateField,
|
|
72
|
+
providerCompanies: intArray("IDs de sociétés sous-traitantes (filtre pour ressources externes)."),
|
|
73
|
+
coordinates: z.string().optional().describe("Coordonnées GPS 'latitude,longitude' pour recherche géographique. À combiner avec `geoDistance`."),
|
|
74
|
+
location: z.string().optional().describe("Adresse texte (ville, etc.) pour recherche géographique. À combiner avec `geoDistance`."),
|
|
75
|
+
geoDistance: z.number().int().min(5).max(200).optional().describe("Rayon en km pour la recherche géographique (5-200). Requis si `coordinates` ou `location` est fourni."),
|
|
76
|
+
excludeManager: z.boolean().optional().describe("Si true, ne retourne que les ressources sans compte manager."),
|
|
77
|
+
shields: z.array(z.enum(["uncomplete", "minimum", "complete"])).optional()
|
|
78
|
+
.describe("Niveau de complétude des champs conditionnels."),
|
|
79
|
+
sort: sortField,
|
|
80
|
+
order: orderField,
|
|
81
|
+
page: pageField,
|
|
82
|
+
pageSize: pageSizeField,
|
|
83
|
+
}).strict();
|
|
84
|
+
// ---- Candidate search schema ----
|
|
85
|
+
// Source: https://doc.boondmanager.com/api-externe/raml-build/resources/candidates/search.raml
|
|
86
|
+
export const CandidateSearchSchema = z.object({
|
|
87
|
+
keywords: z.string().optional().describe("Mots-clés (par défaut, recherche dans CV + dossier technique). Combinable avec `keywordsType`."),
|
|
88
|
+
keywordsType: z.enum([
|
|
89
|
+
"resumeTd", "lastName", "firstName", "fullName", "strictFullName",
|
|
90
|
+
"emails", "title", "titleSkills", "phones", "reference", "resume", "td",
|
|
91
|
+
]).optional().describe("Champ ciblé par `keywords` (défaut: 'resumeTd')."),
|
|
92
|
+
perimeterManagers: perimeterManagersField,
|
|
93
|
+
perimeterAgencies: perimeterAgenciesField,
|
|
94
|
+
perimeterPoles: perimeterPolesField,
|
|
95
|
+
perimeterBusinessUnits: perimeterBusinessUnitsField,
|
|
96
|
+
perimeterDynamic: perimeterDynamicField,
|
|
97
|
+
perimeterManagersType: z.enum(["main", "hr"]).optional().describe("Type de responsable visé par `perimeterManagers`: 'main' (Main Manager) ou 'hr' (HR Manager)."),
|
|
98
|
+
narrowPerimeter: narrowPerimeterField,
|
|
99
|
+
candidateStates: intArray("IDs d'états de candidat (dictionnaire setting.state.candidate via boond_application_dictionary)."),
|
|
100
|
+
candidateTypes: intArray("IDs de types de candidat (dictionnaire setting.typeOf.resource)."),
|
|
101
|
+
contractTypes: intArray("IDs de types de contrat recherchés (dictionnaire setting.typeOf.contract)."),
|
|
102
|
+
availabilityTypes: intArray("IDs de types de disponibilité (dictionnaire setting.availability)."),
|
|
103
|
+
activityAreas: strArray("IDs de secteurs d'activité (dictionnaire setting.activityArea)."),
|
|
104
|
+
expertiseAreas: strArray("IDs de domaines d'expertise."),
|
|
105
|
+
tools: strArray("IDs d'outils/technos. Logique OU par défaut. Pour ET, ajouter '#AND#' en 1er élément."),
|
|
106
|
+
experiences: intArray("IDs de niveaux d'expérience."),
|
|
107
|
+
trainings: strArray("IDs de formations."),
|
|
108
|
+
mobilityAreas: strArray("IDs de zones de mobilité."),
|
|
109
|
+
languages: strArray("Langues au format `langueId|niveauId` (ex: ['anglais|courant'])."),
|
|
110
|
+
evaluations: strArray("IDs d'évaluations."),
|
|
111
|
+
sources: strArray("IDs de sources de recrutement (dictionnaire setting.source)."),
|
|
112
|
+
flags: intArray("IDs de tags."),
|
|
113
|
+
period: z.string().optional().describe("Filtre temporel : 'created', 'updated', 'available', "
|
|
114
|
+
+ "'noAction'/'withActions'/'withoutActions'. À combiner avec `startDate` + `endDate`."),
|
|
115
|
+
startDate: startDateField,
|
|
116
|
+
endDate: endDateField,
|
|
117
|
+
providerCompanies: intArray("IDs de sociétés sous-traitantes."),
|
|
118
|
+
coordinates: z.string().optional().describe("Coordonnées GPS 'lat,lon'. Requiert `geoDistance`."),
|
|
119
|
+
location: z.string().optional().describe("Adresse texte. Requiert `geoDistance`."),
|
|
120
|
+
geoDistance: z.number().int().min(5).max(200).optional().describe("Rayon km (5-200)."),
|
|
121
|
+
shields: z.array(z.enum(["uncomplete", "minimum", "complete"])).optional()
|
|
122
|
+
.describe("Niveau de complétude."),
|
|
123
|
+
sort: sortField,
|
|
124
|
+
order: orderField,
|
|
125
|
+
page: pageField,
|
|
126
|
+
pageSize: pageSizeField,
|
|
127
|
+
}).strict();
|
|
128
|
+
// ---- Contact search schema ----
|
|
129
|
+
// Source: https://doc.boondmanager.com/api-externe/raml-build/resources/contacts/search.raml
|
|
130
|
+
export const ContactSearchSchema = z.object({
|
|
131
|
+
keywords: z.string().optional().describe("Mots-clés (défaut: nom + prénom + société + fonction + périmètre technique). "
|
|
132
|
+
+ "Combinable avec `keywordsType`."),
|
|
133
|
+
keywordsType: z.enum([
|
|
134
|
+
"default", "lastName", "firstName", "fullName", "strictFullName",
|
|
135
|
+
"companyFullName", "emails", "phones", "socialNetworks",
|
|
136
|
+
]).optional().describe("Champ ciblé. Défaut: 'default'. Pour 'fullName' utiliser `keywords = 'NOM#PRENOM'`. "
|
|
137
|
+
+ "Pour 'companyFullName' utiliser `keywords = 'CSOCid#NOM#PRENOM'`."),
|
|
138
|
+
perimeterManagers: perimeterManagersField,
|
|
139
|
+
perimeterAgencies: perimeterAgenciesField,
|
|
140
|
+
perimeterPoles: perimeterPolesField,
|
|
141
|
+
perimeterBusinessUnits: perimeterBusinessUnitsField,
|
|
142
|
+
perimeterDynamic: perimeterDynamicField,
|
|
143
|
+
narrowPerimeter: narrowPerimeterField,
|
|
144
|
+
states: intArray("IDs d'états de contact (dictionnaire setting.state.contact)."),
|
|
145
|
+
companyStates: intArray("IDs d'états des sociétés rattachées (dictionnaire setting.state.company)."),
|
|
146
|
+
typesOf: intArray("IDs de types de contact (dictionnaire setting.typeOf.contact). "
|
|
147
|
+
+ "⚠️ Le paramètre s'appelle `typesOf` (avec un 's'), PAS `typeOf`."),
|
|
148
|
+
origins: strArray("IDs d'origines (dictionnaire setting.origin)."),
|
|
149
|
+
activityAreas: strArray("IDs de secteurs d'activité de la société."),
|
|
150
|
+
expertiseAreas: strArray("IDs de domaines d'expertise de la société."),
|
|
151
|
+
tools: strArray("IDs d'outils. Logique OU par défaut, '#AND#' en 1er pour ET."),
|
|
152
|
+
influencers: intArray("IDs de contacts influenceurs."),
|
|
153
|
+
flags: intArray("IDs de tags."),
|
|
154
|
+
period: z.string().optional().describe("Filtre temporel : 'created', 'updated', 'noAction'/'withActions'/'withoutActions'. "
|
|
155
|
+
+ "À combiner avec `startDate` + `endDate`."),
|
|
156
|
+
startDate: startDateField,
|
|
157
|
+
endDate: endDateField,
|
|
158
|
+
completeness: strArray("Filtre par complétude des champs au format `fieldId:mode` (fieldId: email/phone/socialNetworks ; "
|
|
159
|
+
+ "mode: empty/filled). Logique OU par défaut, '#AND#' en 1er pour ET. Ex: ['email:empty','phone:empty']."),
|
|
160
|
+
shields: z.array(z.enum(["uncomplete", "minimum", "complete"])).optional()
|
|
161
|
+
.describe("Niveau de complétude."),
|
|
162
|
+
sort: sortField,
|
|
163
|
+
order: orderField,
|
|
164
|
+
page: pageField,
|
|
165
|
+
pageSize: pageSizeField,
|
|
166
|
+
}).strict();
|
|
167
|
+
// ---- Company search schema ----
|
|
168
|
+
// Source: https://doc.boondmanager.com/api-externe/raml-build/resources/companies/search.raml
|
|
169
|
+
export const CompanySearchSchema = z.object({
|
|
170
|
+
keywords: z.string().optional().describe("Mots-clés (défaut: nom + ville + pays + expertise + informations). Combinable avec `keywordsType`."),
|
|
171
|
+
keywordsType: z.enum(["default", "name", "phones", "emails", "socialNetworks"]).optional()
|
|
172
|
+
.describe("Champ ciblé par `keywords`. Défaut: 'default'."),
|
|
173
|
+
perimeterManagers: perimeterManagersField,
|
|
174
|
+
perimeterAgencies: perimeterAgenciesField,
|
|
175
|
+
perimeterPoles: perimeterPolesField,
|
|
176
|
+
perimeterBusinessUnits: perimeterBusinessUnitsField,
|
|
177
|
+
perimeterDynamic: perimeterDynamicField,
|
|
178
|
+
narrowPerimeter: narrowPerimeterField,
|
|
179
|
+
states: intArray("IDs d'états de société (dictionnaire setting.state.company)."),
|
|
180
|
+
expertiseAreas: strArray("IDs de domaines d'expertise (dictionnaire setting.expertiseArea)."),
|
|
181
|
+
origins: strArray("IDs d'origines (dictionnaire setting.origin)."),
|
|
182
|
+
influencers: intArray("IDs d'influenceurs."),
|
|
183
|
+
flags: intArray("IDs de tags."),
|
|
184
|
+
period: z.string().optional().describe("Filtre temporel : 'created', 'updated', 'noAction'/'withActions'/'withoutActions'. "
|
|
185
|
+
+ "À combiner avec `startDate` + `endDate`."),
|
|
186
|
+
startDate: startDateField,
|
|
187
|
+
endDate: endDateField,
|
|
188
|
+
shields: z.array(z.enum(["uncomplete", "minimum", "complete"])).optional()
|
|
189
|
+
.describe("Niveau de complétude."),
|
|
190
|
+
sort: sortField,
|
|
191
|
+
order: orderField,
|
|
192
|
+
page: pageField,
|
|
193
|
+
pageSize: pageSizeField,
|
|
194
|
+
}).strict();
|
|
195
|
+
// ---- Opportunity search schema ----
|
|
196
|
+
// Source: https://doc.boondmanager.com/api-externe/raml-build/resources/opportunities/search.raml
|
|
197
|
+
export const OpportunitySearchSchema = z.object({
|
|
198
|
+
keywords: z.string().optional().describe("Mots-clés. Pour cibler par ID préfixé : 'AOnnn' (opportunité), 'CSOCnnn' (société), "
|
|
199
|
+
+ "'CCONnnn' (contact), 'CANDnnn' (candidat), 'COMPnnn' (ressource), 'PRODnnn' (produit). "
|
|
200
|
+
+ "Sinon recherche plein texte sur titre/société."),
|
|
201
|
+
perimeterManagers: perimeterManagersField,
|
|
202
|
+
perimeterAgencies: perimeterAgenciesField,
|
|
203
|
+
perimeterPoles: perimeterPolesField,
|
|
204
|
+
perimeterBusinessUnits: perimeterBusinessUnitsField,
|
|
205
|
+
perimeterDynamic: perimeterDynamicField,
|
|
206
|
+
perimeterManagersType: z.enum(["main", "hr"]).optional()
|
|
207
|
+
.describe("Type de responsable visé par `perimeterManagers` (main/hr)."),
|
|
208
|
+
narrowPerimeter: narrowPerimeterField,
|
|
209
|
+
opportunityStates: intArray("IDs d'états d'opportunité (dictionnaire setting.state.opportunity)."),
|
|
210
|
+
opportunityTypes: strArray("IDs de types d'opportunité (dictionnaire setting.typeOf.project)."),
|
|
211
|
+
positioningStates: strArray("IDs d'états de positionnement, ou 'none' pour les opportunités sans positionnement."),
|
|
212
|
+
expertiseAreas: strArray("IDs de domaines d'expertise."),
|
|
213
|
+
activityAreas: strArray("IDs de secteurs d'activité."),
|
|
214
|
+
tools: strArray("IDs d'outils."),
|
|
215
|
+
places: strArray("IDs de zones (dictionnaire setting.mobilityArea)."),
|
|
216
|
+
durations: intArray("IDs de durées (dictionnaire setting.duration)."),
|
|
217
|
+
origins: strArray("IDs d'origines."),
|
|
218
|
+
flags: intArray("IDs de tags."),
|
|
219
|
+
period: z.string().optional().describe("Filtre temporel : 'created' (création), 'started', 'closingDate' (date de closing), "
|
|
220
|
+
+ "'updated', 'updatedPositioning', 'noAction'/'withActions'/'withoutActions'. "
|
|
221
|
+
+ "À combiner avec `startDate` + `endDate`."),
|
|
222
|
+
startDate: startDateField,
|
|
223
|
+
endDate: endDateField,
|
|
224
|
+
shields: z.array(z.enum(["uncomplete", "minimum", "complete"])).optional()
|
|
225
|
+
.describe("Niveau de complétude."),
|
|
226
|
+
sort: sortField,
|
|
227
|
+
order: orderField,
|
|
228
|
+
page: pageField,
|
|
229
|
+
pageSize: pageSizeField,
|
|
230
|
+
}).strict();
|
|
231
|
+
// ---- Project search schema ----
|
|
232
|
+
// Source: https://doc.boondmanager.com/api-externe/raml-build/resources/projects/search.raml
|
|
233
|
+
export const ProjectSearchSchema = z.object({
|
|
234
|
+
keywords: z.string().optional().describe("Mots-clés. Pour cibler par ID préfixé : 'PRJnnn' (projet), 'CSOCnnn' (société), "
|
|
235
|
+
+ "'CCONnnn' (contact), 'AOnnn' (opportunité), 'COMPnnn' (ressource), 'CTRnnn' (contrat)."),
|
|
236
|
+
perimeterManagers: perimeterManagersField,
|
|
237
|
+
perimeterAgencies: perimeterAgenciesField,
|
|
238
|
+
perimeterPoles: perimeterPolesField,
|
|
239
|
+
perimeterBusinessUnits: perimeterBusinessUnitsField,
|
|
240
|
+
perimeterDynamic: perimeterDynamicField,
|
|
241
|
+
narrowPerimeter: narrowPerimeterField,
|
|
242
|
+
projectStates: intArray("IDs d'états de projet (dictionnaire setting.state.project)."),
|
|
243
|
+
projectTypes: intArray("IDs de types de projet (dictionnaire setting.typeOf.project)."),
|
|
244
|
+
companies: intArray("IDs de sociétés clientes : projets rattachés à ces sociétés."),
|
|
245
|
+
expertiseAreas: strArray("IDs de domaines d'expertise."),
|
|
246
|
+
activityAreas: strArray("IDs de secteurs d'activité."),
|
|
247
|
+
flags: intArray("IDs de tags."),
|
|
248
|
+
period: z.string().optional().describe("Filtre temporel : 'running' (en cours), 'created', 'started', 'stopped', 'closed', 'updated', "
|
|
249
|
+
+ "'hasAdditionalDataOrPurchase'. À combiner avec `startDate` + `endDate`."),
|
|
250
|
+
startDate: startDateField,
|
|
251
|
+
endDate: endDateField,
|
|
252
|
+
sort: sortField,
|
|
253
|
+
order: orderField,
|
|
254
|
+
page: pageField,
|
|
255
|
+
pageSize: pageSizeField,
|
|
256
|
+
}).strict();
|
|
10
257
|
// ID param schema
|
|
11
258
|
export const IdSchema = z.object({
|
|
12
259
|
id: z.string().min(1).describe("Identifiant unique de l'entité BoondManager"),
|