@brivioio/api-server-types 4.0.0 → 4.0.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/candidates/candidates.types.d.ts +224 -0
- package/dist/candidates/candidates.types.d.ts.map +1 -0
- package/dist/candidates/candidates.types.js +1 -0
- package/dist/candidates/enums.types.d.ts +76 -0
- package/dist/candidates/enums.types.d.ts.map +1 -0
- package/dist/candidates/enums.types.js +86 -0
- package/dist/candidates/index.d.ts +4 -0
- package/dist/candidates/index.d.ts.map +1 -0
- package/dist/candidates/index.js +3 -0
- package/dist/candidates/others.types.d.ts +132 -0
- package/dist/candidates/others.types.d.ts.map +1 -0
- package/dist/candidates/others.types.js +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/positions/enums.types.d.ts +31 -0
- package/dist/positions/enums.types.d.ts.map +1 -0
- package/dist/positions/enums.types.js +36 -0
- package/dist/positions/index.d.ts +4 -0
- package/dist/positions/index.d.ts.map +1 -0
- package/dist/positions/index.js +3 -0
- package/dist/positions/listViewConfig.types.d.ts +303 -0
- package/dist/positions/listViewConfig.types.d.ts.map +1 -0
- package/dist/positions/listViewConfig.types.js +67 -0
- package/dist/positions/positions.types.d.ts +279 -0
- package/dist/positions/positions.types.d.ts.map +1 -0
- package/dist/positions/positions.types.js +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filter and View Configuration Types for Position Lists
|
|
3
|
+
*
|
|
4
|
+
* This type system supports comprehensive filtering, sorting, searching, and column visibility
|
|
5
|
+
* management for candidate lists within positions.
|
|
6
|
+
*
|
|
7
|
+
* Key Features:
|
|
8
|
+
* 1. Type-safe filters for different data types (string, number, boolean, array, date)
|
|
9
|
+
* 2. Single-field sorting (one column at a time)
|
|
10
|
+
* 3. Column visibility management
|
|
11
|
+
* 4. Support for dynamic position question fields
|
|
12
|
+
*
|
|
13
|
+
* Design Decisions:
|
|
14
|
+
* - Each filter type has a 'none' operation to represent "no filter applied"
|
|
15
|
+
* - Each filter type has a 'blank' operation to filter for empty/null values
|
|
16
|
+
* - deepProfileStatus is treated as a string filter (for enum values like 'queued', 'processing', etc.)
|
|
17
|
+
* - Array sorting uses array length (useful for skills - more skills = higher in desc order)
|
|
18
|
+
* - Position questions use discriminated unions to ensure type safety based on question type
|
|
19
|
+
* - FieldFilterConfig uses discriminated unions to ensure correct filter type for each field
|
|
20
|
+
* - Only one column can be sorted at a time (single-field sorting)
|
|
21
|
+
*/
|
|
22
|
+
export type SortDirection = 'asc' | 'desc';
|
|
23
|
+
export type StringFilterOperation = {
|
|
24
|
+
type: 'substring';
|
|
25
|
+
value: string;
|
|
26
|
+
} | {
|
|
27
|
+
type: 'in';
|
|
28
|
+
values: string[];
|
|
29
|
+
} | {
|
|
30
|
+
type: 'blank';
|
|
31
|
+
} | {
|
|
32
|
+
type: 'none';
|
|
33
|
+
};
|
|
34
|
+
export type StringFilter = {
|
|
35
|
+
operation: StringFilterOperation;
|
|
36
|
+
};
|
|
37
|
+
export type NumberFilterOperation = {
|
|
38
|
+
type: 'equals';
|
|
39
|
+
value: number;
|
|
40
|
+
} | {
|
|
41
|
+
type: 'notEquals';
|
|
42
|
+
value: number;
|
|
43
|
+
} | {
|
|
44
|
+
type: 'greaterThan';
|
|
45
|
+
value: number;
|
|
46
|
+
} | {
|
|
47
|
+
type: 'lessThan';
|
|
48
|
+
value: number;
|
|
49
|
+
} | {
|
|
50
|
+
type: 'greaterThanOrEqual';
|
|
51
|
+
value: number;
|
|
52
|
+
} | {
|
|
53
|
+
type: 'lessThanOrEqual';
|
|
54
|
+
value: number;
|
|
55
|
+
} | {
|
|
56
|
+
type: 'between';
|
|
57
|
+
min: number;
|
|
58
|
+
max: number;
|
|
59
|
+
} | {
|
|
60
|
+
type: 'in';
|
|
61
|
+
values: number[];
|
|
62
|
+
} | {
|
|
63
|
+
type: 'blank';
|
|
64
|
+
} | {
|
|
65
|
+
type: 'none';
|
|
66
|
+
};
|
|
67
|
+
export type NumberFilter = {
|
|
68
|
+
operation: NumberFilterOperation;
|
|
69
|
+
};
|
|
70
|
+
export type BooleanFilterOperation = {
|
|
71
|
+
type: 'true';
|
|
72
|
+
} | {
|
|
73
|
+
type: 'false';
|
|
74
|
+
} | {
|
|
75
|
+
type: 'none';
|
|
76
|
+
} | {
|
|
77
|
+
type: 'blank';
|
|
78
|
+
};
|
|
79
|
+
export type BooleanFilter = {
|
|
80
|
+
operation: BooleanFilterOperation;
|
|
81
|
+
};
|
|
82
|
+
export type ArrayFilterOperation = {
|
|
83
|
+
type: 'containsAll';
|
|
84
|
+
values: string[];
|
|
85
|
+
} | {
|
|
86
|
+
type: 'containsAny';
|
|
87
|
+
values: string[];
|
|
88
|
+
} | {
|
|
89
|
+
type: 'blank';
|
|
90
|
+
} | {
|
|
91
|
+
type: 'none';
|
|
92
|
+
};
|
|
93
|
+
export type ArrayFilter = {
|
|
94
|
+
operation: ArrayFilterOperation;
|
|
95
|
+
};
|
|
96
|
+
export type DateFilterOperation = {
|
|
97
|
+
type: 'range';
|
|
98
|
+
start?: number;
|
|
99
|
+
end?: number;
|
|
100
|
+
} | {
|
|
101
|
+
type: 'in';
|
|
102
|
+
values: number[];
|
|
103
|
+
} | {
|
|
104
|
+
type: 'blank';
|
|
105
|
+
} | {
|
|
106
|
+
type: 'none';
|
|
107
|
+
};
|
|
108
|
+
export type DateFilter = {
|
|
109
|
+
operation: DateFilterOperation;
|
|
110
|
+
};
|
|
111
|
+
export type PositionQuestionFilter = {
|
|
112
|
+
questionType: 'text';
|
|
113
|
+
filter: StringFilter;
|
|
114
|
+
} | {
|
|
115
|
+
questionType: 'number';
|
|
116
|
+
filter: NumberFilter;
|
|
117
|
+
} | {
|
|
118
|
+
questionType: 'mcq';
|
|
119
|
+
filter: ArrayFilter;
|
|
120
|
+
};
|
|
121
|
+
export type CandidateFieldId = 'applicationId' | 'applicationSubmittedAt' | 'candidateId' | 'baseProfileUpdatedAt' | 'cvUpdatedAt' | 'lastDeepProfileRequestedAt' | 'lastSuccessfulDeepProfileAt' | 'deepProfileStatus' | 'scrapedProfilesLastRequestedAt' | 'scrapedProfilesLastSuccessfulRunAt' | 'scrapedProfilesStatus' | 'candidateEmail' | 'countryCode' | 'phoneNumber' | 'linkedinUrl' | 'githubUrl' | 'codeforcesUrl' | 'codechefUrl' | 'leetcodeUrl' | 'fullTimeExperienceInYears' | 'coreSkills' | 'noticePeriod' | 'currentSalary' | 'expectedSalary' | 'currentCity' | 'currentState' | 'preferredCity' | 'preferredState' | 'computedFullName' | 'computedWhatsAppUrl' | 'computedAllSkills' | 'computedFullTimeExperienceInYears' | 'computedIsCurrentlyEmployedFullTime' | 'computedNumberOfFullTimeJobSwitches' | 'computedLatestFullTimeEmployer' | 'computedMonthsSpentInLatestFullTimeRole' | 'computedMonthsSinceUnemployedFromLastFullTimeRole' | 'computedLatestFullTimeRoleTitle' | 'computedLatestBachelorsInstituteName' | 'computedLatestBachelorsDegree' | 'computedLatestDegree';
|
|
122
|
+
export type FieldFilterConfig = {
|
|
123
|
+
fieldId: 'applicationSubmittedAt';
|
|
124
|
+
filter: DateFilter;
|
|
125
|
+
} | {
|
|
126
|
+
fieldId: 'cvUpdatedAt';
|
|
127
|
+
filter: DateFilter;
|
|
128
|
+
} | {
|
|
129
|
+
fieldId: 'baseProfileUpdatedAt';
|
|
130
|
+
filter: DateFilter;
|
|
131
|
+
} | {
|
|
132
|
+
fieldId: 'lastDeepProfileRequestedAt';
|
|
133
|
+
filter: DateFilter;
|
|
134
|
+
} | {
|
|
135
|
+
fieldId: 'lastSuccessfulDeepProfileAt';
|
|
136
|
+
filter: DateFilter;
|
|
137
|
+
} | {
|
|
138
|
+
fieldId: 'deepProfileStatus';
|
|
139
|
+
filter: StringFilter;
|
|
140
|
+
} | {
|
|
141
|
+
fieldId: 'scrapedProfilesLastRequestedAt';
|
|
142
|
+
filter: DateFilter;
|
|
143
|
+
} | {
|
|
144
|
+
fieldId: 'scrapedProfilesLastSuccessfulRunAt';
|
|
145
|
+
filter: DateFilter;
|
|
146
|
+
} | {
|
|
147
|
+
fieldId: 'scrapedProfilesStatus';
|
|
148
|
+
filter: StringFilter;
|
|
149
|
+
} | {
|
|
150
|
+
fieldId: 'candidateEmail';
|
|
151
|
+
filter: StringFilter;
|
|
152
|
+
} | {
|
|
153
|
+
fieldId: 'candidateId';
|
|
154
|
+
filter: StringFilter;
|
|
155
|
+
} | {
|
|
156
|
+
fieldId: 'applicationId';
|
|
157
|
+
filter: StringFilter;
|
|
158
|
+
} | {
|
|
159
|
+
fieldId: 'noticePeriod';
|
|
160
|
+
filter: NumberFilter;
|
|
161
|
+
} | {
|
|
162
|
+
fieldId: 'currentSalary';
|
|
163
|
+
filter: NumberFilter;
|
|
164
|
+
} | {
|
|
165
|
+
fieldId: 'expectedSalary';
|
|
166
|
+
filter: NumberFilter;
|
|
167
|
+
} | {
|
|
168
|
+
fieldId: 'currentCity';
|
|
169
|
+
filter: StringFilter;
|
|
170
|
+
} | {
|
|
171
|
+
fieldId: 'currentState';
|
|
172
|
+
filter: StringFilter;
|
|
173
|
+
} | {
|
|
174
|
+
fieldId: 'preferredCity';
|
|
175
|
+
filter: StringFilter;
|
|
176
|
+
} | {
|
|
177
|
+
fieldId: 'preferredState';
|
|
178
|
+
filter: StringFilter;
|
|
179
|
+
} | {
|
|
180
|
+
fieldId: 'fullTimeExperienceInYears';
|
|
181
|
+
filter: NumberFilter;
|
|
182
|
+
} | {
|
|
183
|
+
fieldId: 'countryCode';
|
|
184
|
+
filter: NumberFilter;
|
|
185
|
+
} | {
|
|
186
|
+
fieldId: 'phoneNumber';
|
|
187
|
+
filter: NumberFilter;
|
|
188
|
+
} | {
|
|
189
|
+
fieldId: 'linkedinUrl';
|
|
190
|
+
filter: StringFilter;
|
|
191
|
+
} | {
|
|
192
|
+
fieldId: 'githubUrl';
|
|
193
|
+
filter: StringFilter;
|
|
194
|
+
} | {
|
|
195
|
+
fieldId: 'codeforcesUrl';
|
|
196
|
+
filter: StringFilter;
|
|
197
|
+
} | {
|
|
198
|
+
fieldId: 'codechefUrl';
|
|
199
|
+
filter: StringFilter;
|
|
200
|
+
} | {
|
|
201
|
+
fieldId: 'leetcodeUrl';
|
|
202
|
+
filter: StringFilter;
|
|
203
|
+
} | {
|
|
204
|
+
fieldId: 'coreSkills';
|
|
205
|
+
filter: ArrayFilter;
|
|
206
|
+
} | {
|
|
207
|
+
fieldId: 'computedFullName';
|
|
208
|
+
filter: StringFilter;
|
|
209
|
+
} | {
|
|
210
|
+
fieldId: 'computedWhatsAppUrl';
|
|
211
|
+
filter: StringFilter;
|
|
212
|
+
} | {
|
|
213
|
+
fieldId: 'computedAllSkills';
|
|
214
|
+
filter: ArrayFilter;
|
|
215
|
+
} | {
|
|
216
|
+
fieldId: 'computedFullTimeExperienceInYears';
|
|
217
|
+
filter: NumberFilter;
|
|
218
|
+
} | {
|
|
219
|
+
fieldId: 'computedIsCurrentlyEmployedFullTime';
|
|
220
|
+
filter: BooleanFilter;
|
|
221
|
+
} | {
|
|
222
|
+
fieldId: 'computedNumberOfFullTimeJobSwitches';
|
|
223
|
+
filter: NumberFilter;
|
|
224
|
+
} | {
|
|
225
|
+
fieldId: 'computedLatestFullTimeEmployer';
|
|
226
|
+
filter: StringFilter;
|
|
227
|
+
} | {
|
|
228
|
+
fieldId: 'computedMonthsSpentInLatestFullTimeRole';
|
|
229
|
+
filter: NumberFilter;
|
|
230
|
+
} | {
|
|
231
|
+
fieldId: 'computedMonthsSinceUnemployedFromLastFullTimeRole';
|
|
232
|
+
filter: NumberFilter;
|
|
233
|
+
} | {
|
|
234
|
+
fieldId: 'computedLatestFullTimeRoleTitle';
|
|
235
|
+
filter: StringFilter;
|
|
236
|
+
} | {
|
|
237
|
+
fieldId: 'computedLatestBachelorsInstituteName';
|
|
238
|
+
filter: StringFilter;
|
|
239
|
+
} | {
|
|
240
|
+
fieldId: 'computedLatestBachelorsDegree';
|
|
241
|
+
filter: StringFilter;
|
|
242
|
+
} | {
|
|
243
|
+
fieldId: 'computedLatestDegree';
|
|
244
|
+
filter: StringFilter;
|
|
245
|
+
} | {
|
|
246
|
+
fieldId: string;
|
|
247
|
+
filter: PositionQuestionFilter;
|
|
248
|
+
};
|
|
249
|
+
export type FieldSortConfig = {
|
|
250
|
+
fieldId: CandidateFieldId | string;
|
|
251
|
+
direction: SortDirection;
|
|
252
|
+
} | null;
|
|
253
|
+
export type ListViewConfig = {
|
|
254
|
+
filters: FieldFilterConfig[];
|
|
255
|
+
sort: FieldSortConfig;
|
|
256
|
+
hiddenColumns: (CandidateFieldId | string)[];
|
|
257
|
+
};
|
|
258
|
+
/**
|
|
259
|
+
* Example Usage:
|
|
260
|
+
*
|
|
261
|
+
* 1. Filter candidates with 3+ years experience, currently employed, and know BOTH React and TypeScript:
|
|
262
|
+
* {
|
|
263
|
+
* filters: [
|
|
264
|
+
* { fieldId: 'fullTimeExperienceInYears', filter: { operation: { type: 'greaterThanOrEqual', value: 3 } } },
|
|
265
|
+
* { fieldId: 'isCurrentlyEmployed', filter: { operation: { type: 'true' } } },
|
|
266
|
+
* { fieldId: 'coreSkills', filter: { operation: { type: 'containsAll', values: ['React', 'TypeScript'] } } }
|
|
267
|
+
* ],
|
|
268
|
+
* sort: { fieldId: 'fullTimeExperienceInYears', direction: 'desc' },
|
|
269
|
+
* hiddenColumns: ['phoneNumber', 'linkedinUrl']
|
|
270
|
+
* }
|
|
271
|
+
*
|
|
272
|
+
* 2. Filter candidates who know EITHER React OR Vue OR Angular:
|
|
273
|
+
* {
|
|
274
|
+
* filters: [
|
|
275
|
+
* { fieldId: 'coreSkills', filter: { operation: { type: 'containsAny', values: ['React', 'Vue', 'Angular'] } } }
|
|
276
|
+
* ],
|
|
277
|
+
* sort: { fieldId: 'fullTimeExperienceInYears', direction: 'desc' },
|
|
278
|
+
* hiddenColumns: []
|
|
279
|
+
* }
|
|
280
|
+
*
|
|
281
|
+
* 3. Filter by position question (custom field with containsAll):
|
|
282
|
+
* {
|
|
283
|
+
* filters: [
|
|
284
|
+
* {
|
|
285
|
+
* fieldId: 'question-id-123',
|
|
286
|
+
* filter: { questionType: 'mcq', filter: { operation: { type: 'containsAll', values: ['Option A', 'Option B'] } } }
|
|
287
|
+
* }
|
|
288
|
+
* ],
|
|
289
|
+
* sort: null,
|
|
290
|
+
* hiddenColumns: []
|
|
291
|
+
* }
|
|
292
|
+
*
|
|
293
|
+
* 4. Filter for candidates with blank/missing fields:
|
|
294
|
+
* {
|
|
295
|
+
* filters: [
|
|
296
|
+
* { fieldId: 'linkedinUrl', filter: { operation: { type: 'blank' } } },
|
|
297
|
+
* { fieldId: 'currentSalary', filter: { operation: { type: 'blank' } } }
|
|
298
|
+
* ],
|
|
299
|
+
* sort: null,
|
|
300
|
+
* hiddenColumns: []
|
|
301
|
+
* }
|
|
302
|
+
*/
|
|
303
|
+
//# sourceMappingURL=listViewConfig.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listViewConfig.types.d.ts","sourceRoot":"","sources":["../../src/positions/listViewConfig.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filter and View Configuration Types for Position Lists
|
|
3
|
+
*
|
|
4
|
+
* This type system supports comprehensive filtering, sorting, searching, and column visibility
|
|
5
|
+
* management for candidate lists within positions.
|
|
6
|
+
*
|
|
7
|
+
* Key Features:
|
|
8
|
+
* 1. Type-safe filters for different data types (string, number, boolean, array, date)
|
|
9
|
+
* 2. Single-field sorting (one column at a time)
|
|
10
|
+
* 3. Column visibility management
|
|
11
|
+
* 4. Support for dynamic position question fields
|
|
12
|
+
*
|
|
13
|
+
* Design Decisions:
|
|
14
|
+
* - Each filter type has a 'none' operation to represent "no filter applied"
|
|
15
|
+
* - Each filter type has a 'blank' operation to filter for empty/null values
|
|
16
|
+
* - deepProfileStatus is treated as a string filter (for enum values like 'queued', 'processing', etc.)
|
|
17
|
+
* - Array sorting uses array length (useful for skills - more skills = higher in desc order)
|
|
18
|
+
* - Position questions use discriminated unions to ensure type safety based on question type
|
|
19
|
+
* - FieldFilterConfig uses discriminated unions to ensure correct filter type for each field
|
|
20
|
+
* - Only one column can be sorted at a time (single-field sorting)
|
|
21
|
+
*/
|
|
22
|
+
export {};
|
|
23
|
+
/**
|
|
24
|
+
* Example Usage:
|
|
25
|
+
*
|
|
26
|
+
* 1. Filter candidates with 3+ years experience, currently employed, and know BOTH React and TypeScript:
|
|
27
|
+
* {
|
|
28
|
+
* filters: [
|
|
29
|
+
* { fieldId: 'fullTimeExperienceInYears', filter: { operation: { type: 'greaterThanOrEqual', value: 3 } } },
|
|
30
|
+
* { fieldId: 'isCurrentlyEmployed', filter: { operation: { type: 'true' } } },
|
|
31
|
+
* { fieldId: 'coreSkills', filter: { operation: { type: 'containsAll', values: ['React', 'TypeScript'] } } }
|
|
32
|
+
* ],
|
|
33
|
+
* sort: { fieldId: 'fullTimeExperienceInYears', direction: 'desc' },
|
|
34
|
+
* hiddenColumns: ['phoneNumber', 'linkedinUrl']
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* 2. Filter candidates who know EITHER React OR Vue OR Angular:
|
|
38
|
+
* {
|
|
39
|
+
* filters: [
|
|
40
|
+
* { fieldId: 'coreSkills', filter: { operation: { type: 'containsAny', values: ['React', 'Vue', 'Angular'] } } }
|
|
41
|
+
* ],
|
|
42
|
+
* sort: { fieldId: 'fullTimeExperienceInYears', direction: 'desc' },
|
|
43
|
+
* hiddenColumns: []
|
|
44
|
+
* }
|
|
45
|
+
*
|
|
46
|
+
* 3. Filter by position question (custom field with containsAll):
|
|
47
|
+
* {
|
|
48
|
+
* filters: [
|
|
49
|
+
* {
|
|
50
|
+
* fieldId: 'question-id-123',
|
|
51
|
+
* filter: { questionType: 'mcq', filter: { operation: { type: 'containsAll', values: ['Option A', 'Option B'] } } }
|
|
52
|
+
* }
|
|
53
|
+
* ],
|
|
54
|
+
* sort: null,
|
|
55
|
+
* hiddenColumns: []
|
|
56
|
+
* }
|
|
57
|
+
*
|
|
58
|
+
* 4. Filter for candidates with blank/missing fields:
|
|
59
|
+
* {
|
|
60
|
+
* filters: [
|
|
61
|
+
* { fieldId: 'linkedinUrl', filter: { operation: { type: 'blank' } } },
|
|
62
|
+
* { fieldId: 'currentSalary', filter: { operation: { type: 'blank' } } }
|
|
63
|
+
* ],
|
|
64
|
+
* sort: null,
|
|
65
|
+
* hiddenColumns: []
|
|
66
|
+
* }
|
|
67
|
+
*/
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import type { ListViewConfig } from './listViewConfig.types';
|
|
2
|
+
import type { IOrganization } from '../organizations.types';
|
|
3
|
+
import type { IResponse } from '../utils.types';
|
|
4
|
+
import type { LocationMode, EmploymentType, PositionQuestionType, TextQuestionType, McqQuestionType, PositionListType } from './enums.types';
|
|
5
|
+
export interface IPosition {
|
|
6
|
+
_id: string;
|
|
7
|
+
organizationId: string;
|
|
8
|
+
title: string;
|
|
9
|
+
description: string;
|
|
10
|
+
slugs: {
|
|
11
|
+
short: string;
|
|
12
|
+
long: string;
|
|
13
|
+
};
|
|
14
|
+
isOpen: boolean;
|
|
15
|
+
isPublished: boolean;
|
|
16
|
+
jobDescription: {
|
|
17
|
+
requiredExperience: string;
|
|
18
|
+
locationMode: LocationMode;
|
|
19
|
+
location: string;
|
|
20
|
+
datePosted: string;
|
|
21
|
+
skills: string[];
|
|
22
|
+
tags: string[];
|
|
23
|
+
jdMarkdown: string;
|
|
24
|
+
employmentType: EmploymentType;
|
|
25
|
+
employmentTypeOther?: string;
|
|
26
|
+
salary: string;
|
|
27
|
+
};
|
|
28
|
+
questions: {
|
|
29
|
+
id: string;
|
|
30
|
+
type: PositionQuestionType;
|
|
31
|
+
order: number;
|
|
32
|
+
title: string;
|
|
33
|
+
description?: string;
|
|
34
|
+
isRequired: boolean;
|
|
35
|
+
textConfig?: {
|
|
36
|
+
type: TextQuestionType;
|
|
37
|
+
minCharacters?: number;
|
|
38
|
+
maxCharacters?: number;
|
|
39
|
+
validationFailErrorMessage?: string;
|
|
40
|
+
};
|
|
41
|
+
mcqConfig?: {
|
|
42
|
+
options: string[];
|
|
43
|
+
type: McqQuestionType;
|
|
44
|
+
};
|
|
45
|
+
numberConfig?: {
|
|
46
|
+
minValue?: number;
|
|
47
|
+
maxValue?: number;
|
|
48
|
+
validationFailErrorMessage?: string;
|
|
49
|
+
};
|
|
50
|
+
isDeleted: boolean;
|
|
51
|
+
createdAt: string;
|
|
52
|
+
updatedAt: string;
|
|
53
|
+
}[];
|
|
54
|
+
lists: {
|
|
55
|
+
id: string;
|
|
56
|
+
order: number;
|
|
57
|
+
title: string;
|
|
58
|
+
description: string;
|
|
59
|
+
isDeleted: boolean;
|
|
60
|
+
type: PositionListType;
|
|
61
|
+
viewConfig: ListViewConfig;
|
|
62
|
+
createdAt: string;
|
|
63
|
+
updatedAt: string;
|
|
64
|
+
}[];
|
|
65
|
+
internalTags: {
|
|
66
|
+
key: string;
|
|
67
|
+
value: string;
|
|
68
|
+
}[];
|
|
69
|
+
isDeleted: boolean;
|
|
70
|
+
createdAt: string;
|
|
71
|
+
updatedAt: string;
|
|
72
|
+
}
|
|
73
|
+
export type TPositionWithOrganization = Omit<IPosition, 'organizationId'> & {
|
|
74
|
+
organization: IOrganization & {
|
|
75
|
+
logoUrl: string | null;
|
|
76
|
+
};
|
|
77
|
+
totalApplications: number;
|
|
78
|
+
};
|
|
79
|
+
export declare namespace AdminPositionsAPITypes {
|
|
80
|
+
type TGetAllPositionsResponse = IResponse<TPositionWithOrganization[] | null>;
|
|
81
|
+
type TGetPositionByIdResponse = IResponse<TPositionWithOrganization | null>;
|
|
82
|
+
type TCreatePositionRequestBody = {
|
|
83
|
+
organizationId: string;
|
|
84
|
+
title: string;
|
|
85
|
+
description: string;
|
|
86
|
+
slugs: {
|
|
87
|
+
short: string;
|
|
88
|
+
long: string;
|
|
89
|
+
};
|
|
90
|
+
isOpen: boolean;
|
|
91
|
+
isPublished: boolean;
|
|
92
|
+
jobDescription: {
|
|
93
|
+
requiredExperience: string;
|
|
94
|
+
locationMode: string;
|
|
95
|
+
location: string;
|
|
96
|
+
datePosted: string;
|
|
97
|
+
skills: string[];
|
|
98
|
+
tags: string[];
|
|
99
|
+
jdMarkdown: string;
|
|
100
|
+
employmentType: string;
|
|
101
|
+
employmentTypeOther?: string;
|
|
102
|
+
salary: string;
|
|
103
|
+
};
|
|
104
|
+
questions: {
|
|
105
|
+
type: PositionQuestionType;
|
|
106
|
+
order: number;
|
|
107
|
+
title: string;
|
|
108
|
+
description?: string;
|
|
109
|
+
isRequired: boolean;
|
|
110
|
+
textConfig?: {
|
|
111
|
+
type: TextQuestionType;
|
|
112
|
+
minCharacters?: number;
|
|
113
|
+
maxCharacters?: number;
|
|
114
|
+
validationFailErrorMessage?: string;
|
|
115
|
+
};
|
|
116
|
+
mcqConfig?: {
|
|
117
|
+
options: string[];
|
|
118
|
+
type: McqQuestionType;
|
|
119
|
+
};
|
|
120
|
+
numberConfig?: {
|
|
121
|
+
minValue?: number;
|
|
122
|
+
maxValue?: number;
|
|
123
|
+
validationFailErrorMessage?: string;
|
|
124
|
+
};
|
|
125
|
+
}[];
|
|
126
|
+
};
|
|
127
|
+
type TCreatePositionResponse = IResponse<{
|
|
128
|
+
positionId: string;
|
|
129
|
+
} | null>;
|
|
130
|
+
type TEditPositionRequestBody = {
|
|
131
|
+
organizationId: string;
|
|
132
|
+
title: string;
|
|
133
|
+
description: string;
|
|
134
|
+
slugs: {
|
|
135
|
+
short: string;
|
|
136
|
+
long: string;
|
|
137
|
+
};
|
|
138
|
+
isOpen: boolean;
|
|
139
|
+
isPublished: boolean;
|
|
140
|
+
jobDescription: {
|
|
141
|
+
requiredExperience: string;
|
|
142
|
+
locationMode: string;
|
|
143
|
+
location: string;
|
|
144
|
+
datePosted: string;
|
|
145
|
+
skills: string[];
|
|
146
|
+
tags: string[];
|
|
147
|
+
jdMarkdown: string;
|
|
148
|
+
employmentType: string;
|
|
149
|
+
employmentTypeOther?: string;
|
|
150
|
+
salary: string;
|
|
151
|
+
};
|
|
152
|
+
questions: {
|
|
153
|
+
id: string;
|
|
154
|
+
type: PositionQuestionType;
|
|
155
|
+
order: number;
|
|
156
|
+
title: string;
|
|
157
|
+
description?: string;
|
|
158
|
+
isRequired: boolean;
|
|
159
|
+
textConfig?: {
|
|
160
|
+
type: TextQuestionType;
|
|
161
|
+
minCharacters?: number;
|
|
162
|
+
maxCharacters?: number;
|
|
163
|
+
validationFailErrorMessage?: string;
|
|
164
|
+
};
|
|
165
|
+
mcqConfig?: {
|
|
166
|
+
options: string[];
|
|
167
|
+
type: McqQuestionType;
|
|
168
|
+
};
|
|
169
|
+
numberConfig?: {
|
|
170
|
+
minValue?: number;
|
|
171
|
+
maxValue?: number;
|
|
172
|
+
validationFailErrorMessage?: string;
|
|
173
|
+
};
|
|
174
|
+
isDeleted: boolean;
|
|
175
|
+
}[];
|
|
176
|
+
};
|
|
177
|
+
type TEditPositionResponse = IResponse<{
|
|
178
|
+
positionId: string;
|
|
179
|
+
} | null>;
|
|
180
|
+
type TDeletePositionResponse = IResponse<{
|
|
181
|
+
positionId: string;
|
|
182
|
+
} | null>;
|
|
183
|
+
type TDuplicatePositionResponse = IResponse<{
|
|
184
|
+
positionId: string;
|
|
185
|
+
} | null>;
|
|
186
|
+
type TCreateListRequestBody = {
|
|
187
|
+
title: string;
|
|
188
|
+
description: string;
|
|
189
|
+
};
|
|
190
|
+
type TCreateListResponse = IResponse<{
|
|
191
|
+
listId: string;
|
|
192
|
+
} | null>;
|
|
193
|
+
type TDeleteListResponse = IResponse<{
|
|
194
|
+
listId: string;
|
|
195
|
+
} | null>;
|
|
196
|
+
type TEditListRequestBody = {
|
|
197
|
+
title: string;
|
|
198
|
+
description: string;
|
|
199
|
+
};
|
|
200
|
+
type TEditListResponse = IResponse<{
|
|
201
|
+
listId: string;
|
|
202
|
+
} | null>;
|
|
203
|
+
type TReorderListsRequestBody = {
|
|
204
|
+
listIds: string[];
|
|
205
|
+
};
|
|
206
|
+
type TReorderListsResponse = IResponse<null>;
|
|
207
|
+
type TGetPositionListsResponseData = {
|
|
208
|
+
id: string;
|
|
209
|
+
order: number;
|
|
210
|
+
title: string;
|
|
211
|
+
description: string;
|
|
212
|
+
type: PositionListType;
|
|
213
|
+
viewConfig: ListViewConfig;
|
|
214
|
+
createdAt: string;
|
|
215
|
+
updatedAt: string;
|
|
216
|
+
positionId: string;
|
|
217
|
+
applicationCount: number;
|
|
218
|
+
}[];
|
|
219
|
+
type TGetPositionListsResponse = IResponse<TGetPositionListsResponseData | null>;
|
|
220
|
+
type TDeepProfileCandidatesRequestBody = {
|
|
221
|
+
applicationIds?: string[];
|
|
222
|
+
listId?: string;
|
|
223
|
+
lastApplicationSubmittedAt?: string;
|
|
224
|
+
};
|
|
225
|
+
type TDeepProfileCandidatesResponse = IResponse<{
|
|
226
|
+
deepProfileCandidatesCount: number;
|
|
227
|
+
scrapedProfilesCandidatesCount: number;
|
|
228
|
+
} | null>;
|
|
229
|
+
}
|
|
230
|
+
export interface IPositionDetailsForCandidate {
|
|
231
|
+
_id: string;
|
|
232
|
+
title: string;
|
|
233
|
+
description: string;
|
|
234
|
+
slugs: {
|
|
235
|
+
short: string;
|
|
236
|
+
long: string;
|
|
237
|
+
};
|
|
238
|
+
isOpen: boolean;
|
|
239
|
+
isPublished: boolean;
|
|
240
|
+
organization: {
|
|
241
|
+
name: string;
|
|
242
|
+
logoUrl: string | null;
|
|
243
|
+
about: string;
|
|
244
|
+
urls: {
|
|
245
|
+
website: string;
|
|
246
|
+
others: string[];
|
|
247
|
+
};
|
|
248
|
+
};
|
|
249
|
+
jobDescription: {
|
|
250
|
+
requiredExperience: string;
|
|
251
|
+
locationMode: LocationMode;
|
|
252
|
+
location: string;
|
|
253
|
+
datePosted: string;
|
|
254
|
+
skills: string[];
|
|
255
|
+
tags: string[];
|
|
256
|
+
jdMarkdown: string;
|
|
257
|
+
employmentType: EmploymentType;
|
|
258
|
+
employmentTypeOther?: string;
|
|
259
|
+
salary: string;
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
export declare namespace CandidatePositionsAPITypes {
|
|
263
|
+
type TGetPositionBySlugResponse = IResponse<IPositionDetailsForCandidate | null>;
|
|
264
|
+
type TGetPositionApplicationStatusResponse = IResponse<null>;
|
|
265
|
+
type TGetPositionApplicationQuestionsResponse = IResponse<Omit<IPosition['questions'][number], 'isDeleted'>[] | null>;
|
|
266
|
+
type TSubmitPositionApplicationRequestBody = {
|
|
267
|
+
questionsAndAnswers: {
|
|
268
|
+
questionId: string;
|
|
269
|
+
answer: {
|
|
270
|
+
text?: string;
|
|
271
|
+
mcq?: string[];
|
|
272
|
+
number?: number;
|
|
273
|
+
};
|
|
274
|
+
questionUpdatedAtEpochMS: number;
|
|
275
|
+
}[];
|
|
276
|
+
};
|
|
277
|
+
type TSubmitPositionApplicationResponse = IResponse<null>;
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=positions.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"positions.types.d.ts","sourceRoot":"","sources":["../../src/positions/positions.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|