@taiger-common/model 1.0.58 → 1.0.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/cjs/api/account.js +35 -0
  2. package/dist/cjs/api/applications.js +46 -0
  3. package/dist/cjs/api/audit.js +8 -0
  4. package/dist/cjs/api/auth.js +19 -0
  5. package/dist/cjs/api/common.js +32 -0
  6. package/dist/cjs/api/communications.js +15 -0
  7. package/dist/cjs/api/courses.js +23 -0
  8. package/dist/cjs/api/crm.js +87 -0
  9. package/dist/cjs/api/documentThreads.js +44 -0
  10. package/dist/cjs/api/documentations.js +33 -0
  11. package/dist/cjs/api/events.js +22 -0
  12. package/dist/cjs/api/index.js +41 -0
  13. package/dist/cjs/api/interviews.js +35 -0
  14. package/dist/cjs/api/meetings.js +20 -0
  15. package/dist/cjs/api/notes.js +8 -0
  16. package/dist/cjs/api/permissions.js +9 -0
  17. package/dist/cjs/api/portals.js +24 -0
  18. package/dist/cjs/api/programRequirements.js +26 -0
  19. package/dist/cjs/api/programs.js +93 -0
  20. package/dist/cjs/api/search.js +24 -0
  21. package/dist/cjs/api/serialized.js +50 -0
  22. package/dist/cjs/api/students.js +29 -0
  23. package/dist/cjs/api/teams.js +48 -0
  24. package/dist/cjs/api/tickets.js +21 -0
  25. package/dist/cjs/api/users.js +42 -0
  26. package/dist/cjs/api/widgets.js +21 -0
  27. package/dist/cjs/constants/users.js +12 -0
  28. package/dist/cjs/index.js +2 -0
  29. package/dist/cjs/model/Application.js +78 -0
  30. package/dist/cjs/model/Documentthread.js +2 -4
  31. package/dist/cjs/model/Program.js +331 -83
  32. package/dist/cjs/model/User.js +79 -139
  33. package/dist/cjs/model/index.js +1 -1
  34. package/dist/cjs/schema/index.js +22 -0
  35. package/dist/cjs/schema/models.js +523 -0
  36. package/dist/cjs/schema/serialized.js +202 -0
  37. package/package.json +1 -1
@@ -0,0 +1,523 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProgramrequirementSchema = exports.ProgramrequirementProgramCategorySchema = exports.AuditSchema = exports.DocumentthreadSchema = exports.DocumentthreadMessageSchema = exports.DocumentthreadMessageFileSchema = exports.CommunicationSchema = exports.CommunicationFileSchema = exports.InterviewSchema = exports.EventBaseSchema = exports.ComplaintSchema = exports.ComplaintMessageSchema = exports.ComplaintMessageFileSchema = exports.TicketSchema = exports.InterviewSurveyResponseSchema = exports.InterviewSurveyResponseResponseSchema = exports.NoteSchema = exports.PermissionSchema = exports.AllCourseSchema = exports.BasedocumentationslinkSchema = exports.TemplateSchema = exports.SurveyInputSchema = exports.SurveyInputSurveyContentSchema = exports.KeywordsetSchema = exports.KeywordsetKeywordsSchema = exports.InternaldocSchema = exports.DocspageSchema = exports.DocumentationSchema = exports.ProgramSchema = exports.ApplicationAdmissionLetterSchema = exports.ApplicationDocModificationThreadItemSchema = exports.ApplicationPortalCredentialsSchema = exports.ApplicationUniAssistSchema = exports.CourseSchema = exports.CourseAnalysisSchema = exports.UserGeneraldocsThreadSchema = exports.UserProfileItemSchema = exports.UserAttributeSchema = exports.UserAcademicBackgroundSchema = exports.UserAcademicBackgroundLanguageSchema = exports.UserAcademicBackgroundUniversitySchema = exports.UserApplicationPreferenceSchema = exports.UserTaigeraiSchema = exports.UserTaigeraiFeedbackSchema = exports.UserTaigeraiFileSchema = exports.UserNotificationSchema = void 0;
4
+ /**
5
+ * Zod schemas for base model data shapes (API-safe, no Mongoose-specific types).
6
+ * Used by serialized.ts and API response schemas.
7
+ */
8
+ var zod_1 = require("zod");
9
+ // =========== User Sub-schemas ===========
10
+ exports.UserNotificationSchema = zod_1.z.object({
11
+ isRead_survey_not_complete: zod_1.z.boolean().optional(),
12
+ isRead_uni_assist_task_assigned: zod_1.z.boolean().optional(),
13
+ isRead_new_agent_assigned: zod_1.z.boolean().optional(),
14
+ isRead_new_editor_assigned: zod_1.z.boolean().optional(),
15
+ isRead_new_cvmlrl_tasks_created: zod_1.z.boolean().optional(),
16
+ isRead_new_cvmlrl_messsage: zod_1.z.boolean().optional(),
17
+ isRead_base_documents_missing: zod_1.z.boolean().optional(),
18
+ isRead_base_documents_rejected: zod_1.z.boolean().optional(),
19
+ isRead_new_programs_assigned: zod_1.z.boolean().optional()
20
+ });
21
+ exports.UserTaigeraiFileSchema = zod_1.z.object({
22
+ name: zod_1.z.string().optional(),
23
+ status: zod_1.z.string().optional(),
24
+ file_category: zod_1.z.string().optional(),
25
+ path: zod_1.z.string().optional(),
26
+ updatedAt: zod_1.z.coerce.date().optional()
27
+ });
28
+ exports.UserTaigeraiFeedbackSchema = zod_1.z.object({
29
+ message: zod_1.z.string().optional(),
30
+ updatedAt: zod_1.z.coerce.date().optional()
31
+ });
32
+ exports.UserTaigeraiSchema = zod_1.z.object({
33
+ input: exports.UserTaigeraiFileSchema.optional(),
34
+ output: exports.UserTaigeraiFileSchema.optional(),
35
+ feedback: exports.UserTaigeraiFeedbackSchema.optional()
36
+ });
37
+ exports.UserApplicationPreferenceSchema = zod_1.z.object({
38
+ expected_application_date: zod_1.z.string().optional(),
39
+ expected_application_semester: zod_1.z.string().optional(),
40
+ target_program_language: zod_1.z.string().optional(),
41
+ target_application_field: zod_1.z.string().optional(),
42
+ targetApplicationSubjects: zod_1.z.array(zod_1.z.string()).optional(),
43
+ target_degree: zod_1.z.string().optional(),
44
+ considered_privat_universities: zod_1.z.string().optional(),
45
+ special_wished: zod_1.z.string().optional(),
46
+ application_outside_germany: zod_1.z.string().optional(),
47
+ updatedAt: zod_1.z.coerce.date().optional()
48
+ });
49
+ exports.UserAcademicBackgroundUniversitySchema = zod_1.z.object({
50
+ high_school_isGraduated: zod_1.z.string().optional(),
51
+ attended_high_school: zod_1.z.string().optional(),
52
+ high_school_graduated_year: zod_1.z.string().optional(),
53
+ attended_university: zod_1.z.string().optional(),
54
+ attended_university_program: zod_1.z.string().optional(),
55
+ isGraduated: zod_1.z.string().optional(),
56
+ expected_grad_date: zod_1.z.string().optional(),
57
+ Highest_GPA_Uni: zod_1.z.number().optional(),
58
+ Passing_GPA_Uni: zod_1.z.number().optional(),
59
+ My_GPA_Uni: zod_1.z.number().optional(),
60
+ Has_Exchange_Experience: zod_1.z.string().optional(),
61
+ isSecondGraduated: zod_1.z.string().optional(),
62
+ expectedSecondDegreeGradDate: zod_1.z.string().optional(),
63
+ attendedSecondDegreeUniversity: zod_1.z.string().optional(),
64
+ attendedSecondDegreeProgram: zod_1.z.string().optional(),
65
+ highestSecondDegreeGPA: zod_1.z.number().optional(),
66
+ passingSecondDegreeGPA: zod_1.z.number().optional(),
67
+ mySecondDegreeGPA: zod_1.z.number().optional(),
68
+ Has_Internship_Experience: zod_1.z.string().optional(),
69
+ Has_Working_Experience: zod_1.z.string().optional(),
70
+ updatedAt: zod_1.z.coerce.date().optional()
71
+ });
72
+ exports.UserAcademicBackgroundLanguageSchema = zod_1.z.object({
73
+ english_isPassed: zod_1.z.string().optional(),
74
+ english_certificate: zod_1.z.string().optional(),
75
+ english_score: zod_1.z.string().optional(),
76
+ english_score_reading: zod_1.z.string().optional(),
77
+ english_score_listening: zod_1.z.string().optional(),
78
+ english_score_writing: zod_1.z.string().optional(),
79
+ english_score_speaking: zod_1.z.string().optional(),
80
+ english_test_date: zod_1.z.string().optional(),
81
+ german_isPassed: zod_1.z.string().optional(),
82
+ german_certificate: zod_1.z.string().optional(),
83
+ german_score: zod_1.z.string().optional(),
84
+ german_test_date: zod_1.z.string().optional(),
85
+ gre_isPassed: zod_1.z.string().optional(),
86
+ gre_certificate: zod_1.z.string().optional(),
87
+ gre_score: zod_1.z.string().optional(),
88
+ gre_test_date: zod_1.z.string().optional(),
89
+ gmat_isPassed: zod_1.z.string().optional(),
90
+ gmat_certificate: zod_1.z.string().optional(),
91
+ gmat_score: zod_1.z.string().optional(),
92
+ gmat_test_date: zod_1.z.string().optional(),
93
+ updatedAt: zod_1.z.coerce.date().optional()
94
+ });
95
+ exports.UserAcademicBackgroundSchema = zod_1.z.object({
96
+ university: exports.UserAcademicBackgroundUniversitySchema.optional(),
97
+ language: exports.UserAcademicBackgroundLanguageSchema.optional()
98
+ });
99
+ exports.UserAttributeSchema = zod_1.z.object({
100
+ value: zod_1.z.number(),
101
+ name: zod_1.z.string()
102
+ });
103
+ exports.UserProfileItemSchema = zod_1.z.object({
104
+ name: zod_1.z.string(),
105
+ status: zod_1.z.string().optional(),
106
+ required: zod_1.z.boolean(),
107
+ path: zod_1.z.string().optional(),
108
+ feedback: zod_1.z.string().optional(),
109
+ updatedAt: zod_1.z.coerce.date().optional()
110
+ });
111
+ exports.UserGeneraldocsThreadSchema = zod_1.z.object({
112
+ isFinalVersion: zod_1.z.boolean().optional(),
113
+ latest_message_left_by_id: zod_1.z.string().optional(),
114
+ doc_thread_id: zod_1.z.string().optional(),
115
+ updatedAt: zod_1.z.coerce.date().optional(),
116
+ createdAt: zod_1.z.coerce.date().optional()
117
+ });
118
+ // =========== Course Schemas ===========
119
+ exports.CourseAnalysisSchema = zod_1.z.object({
120
+ path: zod_1.z.string().optional(),
121
+ analyzed_course: zod_1.z.array(zod_1.z.string()).optional(),
122
+ isAnalysed: zod_1.z.boolean().optional(),
123
+ isAnalysedV2: zod_1.z.boolean().optional(),
124
+ pathV2: zod_1.z.string().optional(),
125
+ updatedAtV2: zod_1.z.coerce.date().optional(),
126
+ updatedAt: zod_1.z.coerce.date().optional()
127
+ });
128
+ exports.CourseSchema = zod_1.z.object({
129
+ student_id: zod_1.z.string().optional(),
130
+ name: zod_1.z.string().optional(),
131
+ table_data_string: zod_1.z.string().optional(),
132
+ table_data_string_locked: zod_1.z.boolean().optional(),
133
+ table_data_string_taiger_guided: zod_1.z.string().optional(),
134
+ updatedAt: zod_1.z.coerce.date().optional(),
135
+ analysis: exports.CourseAnalysisSchema.optional()
136
+ });
137
+ // =========== Application Sub-schemas ===========
138
+ exports.ApplicationUniAssistSchema = zod_1.z.object({
139
+ status: zod_1.z.string().optional(),
140
+ vpd_file_path: zod_1.z.string().optional(),
141
+ vpd_paid_confirmation_file_path: zod_1.z.string().optional(),
142
+ vpd_paid_confirmation_file_status: zod_1.z.string().optional(),
143
+ isPaid: zod_1.z.boolean().optional(),
144
+ updatedAt: zod_1.z.coerce.date().optional()
145
+ });
146
+ exports.ApplicationPortalCredentialsSchema = zod_1.z.object({
147
+ application_portal_a: zod_1.z
148
+ .object({ account: zod_1.z.string().optional(), password: zod_1.z.string().optional() })
149
+ .optional(),
150
+ application_portal_b: zod_1.z
151
+ .object({ account: zod_1.z.string().optional(), password: zod_1.z.string().optional() })
152
+ .optional()
153
+ });
154
+ exports.ApplicationDocModificationThreadItemSchema = zod_1.z.object({
155
+ isFinalVersion: zod_1.z.boolean().optional(),
156
+ latest_message_left_by_id: zod_1.z.string().optional(),
157
+ doc_thread_id: zod_1.z.string().optional(),
158
+ updatedAt: zod_1.z.coerce.date().optional(),
159
+ createdAt: zod_1.z.coerce.date().optional()
160
+ });
161
+ exports.ApplicationAdmissionLetterSchema = zod_1.z.object({
162
+ status: zod_1.z.string().optional(),
163
+ admission_file_path: zod_1.z.string().optional(),
164
+ comments: zod_1.z.string().optional(),
165
+ updatedAt: zod_1.z.coerce.date().optional()
166
+ });
167
+ // =========== Program Schema ===========
168
+ exports.ProgramSchema = zod_1.z.object({
169
+ isArchiv: zod_1.z.boolean().optional(),
170
+ isLocked: zod_1.z.boolean().optional(),
171
+ school: zod_1.z.string(),
172
+ program_name: zod_1.z.string(),
173
+ programSubjects: zod_1.z.array(zod_1.z.string()).optional(),
174
+ degree: zod_1.z.string().optional(),
175
+ semester: zod_1.z.string().optional(),
176
+ lang: zod_1.z.string().optional(),
177
+ gpa_requirement: zod_1.z.string().optional(),
178
+ allowOnlyGraduatedApplicant: zod_1.z.boolean().optional(),
179
+ application_start: zod_1.z.string().optional(),
180
+ application_deadline: zod_1.z.string().optional(),
181
+ uni_assist: zod_1.z.string().optional(),
182
+ englishTestHandLater: zod_1.z.boolean().optional(),
183
+ toefl: zod_1.z.string().optional(),
184
+ toefl_reading: zod_1.z.number().optional(),
185
+ toefl_listening: zod_1.z.number().optional(),
186
+ toefl_writing: zod_1.z.number().optional(),
187
+ toefl_speaking: zod_1.z.number().optional(),
188
+ ielts: zod_1.z.string().optional(),
189
+ ielts_reading: zod_1.z.number().optional(),
190
+ ielts_listening: zod_1.z.number().optional(),
191
+ ielts_writing: zod_1.z.number().optional(),
192
+ ielts_speaking: zod_1.z.number().optional(),
193
+ germanTestHandLater: zod_1.z.boolean().optional(),
194
+ goetheZertifikat: zod_1.z.string().optional(),
195
+ testdaf: zod_1.z.string().optional(),
196
+ dsh: zod_1.z.string().optional(),
197
+ gre: zod_1.z.string().optional(),
198
+ gre_verbal: zod_1.z.number().optional(),
199
+ gre_quantitative: zod_1.z.number().optional(),
200
+ gre_analytical_writing: zod_1.z.number().optional(),
201
+ gmat: zod_1.z.string().optional(),
202
+ ml_required: zod_1.z.string().optional(),
203
+ ml_requirements: zod_1.z.string().optional(),
204
+ sop_required: zod_1.z.string().optional(),
205
+ sop_requirements: zod_1.z.string().optional(),
206
+ phs_required: zod_1.z.string().optional(),
207
+ phs_requirements: zod_1.z.string().optional(),
208
+ rl_required: zod_1.z.string().optional(),
209
+ rl_requirements: zod_1.z.string().optional(),
210
+ is_rl_specific: zod_1.z.boolean().optional(),
211
+ essay_required: zod_1.z.string().optional(),
212
+ essay_requirements: zod_1.z.string().optional(),
213
+ essay_difficulty: zod_1.z.string().optional(),
214
+ portfolio_required: zod_1.z.string().optional(),
215
+ portfolio_requirements: zod_1.z.string().optional(),
216
+ supplementary_form_required: zod_1.z.string().optional(),
217
+ supplementary_form_requirements: zod_1.z.string().optional(),
218
+ curriculum_analysis_required: zod_1.z.string().optional(),
219
+ curriculum_analysis_requirements: zod_1.z.string().optional(),
220
+ scholarship_form_required: zod_1.z.string().optional(),
221
+ scholarship_form_requirements: zod_1.z.string().optional(),
222
+ module_description_required: zod_1.z.string().optional(),
223
+ ects_requirements: zod_1.z.string().optional(),
224
+ special_notes: zod_1.z.string().optional(),
225
+ comments: zod_1.z.string().optional(),
226
+ application_portal_a: zod_1.z.string().optional(),
227
+ application_portal_b: zod_1.z.string().optional(),
228
+ application_portal_a_instructions: zod_1.z.string().optional(),
229
+ application_portal_b_instructions: zod_1.z.string().optional(),
230
+ uni_assist_link: zod_1.z.string().optional(),
231
+ website: zod_1.z.string().optional(),
232
+ fpso: zod_1.z.string().optional(),
233
+ updatedAt: zod_1.z.coerce.date().optional(),
234
+ whoupdated: zod_1.z.string().optional(),
235
+ tuition_fees: zod_1.z.string().optional(),
236
+ contact: zod_1.z.string().optional(),
237
+ city: zod_1.z.string().optional(),
238
+ country: zod_1.z.string().optional(),
239
+ isPrivateSchool: zod_1.z.boolean().optional(),
240
+ isPartnerSchool: zod_1.z.boolean().optional(),
241
+ schoolType: zod_1.z.string().optional(),
242
+ tags: zod_1.z.array(zod_1.z.string()).optional(),
243
+ url: zod_1.z.string().optional(),
244
+ isNC: zod_1.z.boolean().optional(),
245
+ zipCode: zod_1.z.string().optional()
246
+ });
247
+ // =========== Documentation Schemas ===========
248
+ exports.DocumentationSchema = zod_1.z.object({
249
+ name: zod_1.z.string().optional(),
250
+ title: zod_1.z.string().optional(),
251
+ category: zod_1.z.string().optional(),
252
+ author: zod_1.z.string().optional(),
253
+ prop: zod_1.z.string().optional(),
254
+ text: zod_1.z.string().optional(),
255
+ country: zod_1.z.string().optional(),
256
+ updatedAt: zod_1.z.coerce.date().optional()
257
+ });
258
+ exports.DocspageSchema = zod_1.z.object({
259
+ name: zod_1.z.string().optional(),
260
+ title: zod_1.z.string().optional(),
261
+ category: zod_1.z.string().optional(),
262
+ prop: zod_1.z.string().optional(),
263
+ author: zod_1.z.string().optional(),
264
+ text: zod_1.z.string().optional(),
265
+ country: zod_1.z.string().optional(),
266
+ updatedAt: zod_1.z.coerce.date().optional()
267
+ });
268
+ exports.InternaldocSchema = zod_1.z.object({
269
+ name: zod_1.z.string().optional(),
270
+ title: zod_1.z.string().optional(),
271
+ category: zod_1.z.string().optional(),
272
+ internal: zod_1.z.boolean().optional(),
273
+ author: zod_1.z.string().optional(),
274
+ text: zod_1.z.string().optional(),
275
+ country: zod_1.z.string().optional(),
276
+ updatedAt: zod_1.z.coerce.date().optional()
277
+ });
278
+ // =========== Keywordset Schema ===========
279
+ exports.KeywordsetKeywordsSchema = zod_1.z.object({
280
+ zh: zod_1.z.array(zod_1.z.string()).optional(),
281
+ en: zod_1.z.array(zod_1.z.string()).optional()
282
+ });
283
+ exports.KeywordsetSchema = zod_1.z.object({
284
+ categoryName: zod_1.z.string().optional(),
285
+ description: zod_1.z.string().optional(),
286
+ keywords: exports.KeywordsetKeywordsSchema.optional(),
287
+ antiKeywords: exports.KeywordsetKeywordsSchema.optional()
288
+ });
289
+ // =========== SurveyInput Schema ===========
290
+ exports.SurveyInputSurveyContentSchema = zod_1.z.object({
291
+ questionId: zod_1.z.string().optional(),
292
+ question: zod_1.z.string().optional(),
293
+ answer: zod_1.z.string().optional(),
294
+ type: zod_1.z.enum(['word', 'sentence', 'paragraph', 'essay']).optional(),
295
+ contentType: zod_1.z.string().optional()
296
+ });
297
+ exports.SurveyInputSchema = zod_1.z.object({
298
+ studentId: zod_1.z.string(),
299
+ programId: zod_1.z.string().optional(),
300
+ fileType: zod_1.z.string(),
301
+ isFinalVersion: zod_1.z.boolean().optional(),
302
+ surveyContent: zod_1.z.array(exports.SurveyInputSurveyContentSchema).optional(),
303
+ surveyStatus: zod_1.z.enum(['empty', 'provided', 'generated', 'blocked']).optional(),
304
+ createdAt: zod_1.z.coerce.date().optional(),
305
+ updatedAt: zod_1.z.coerce.date().optional()
306
+ });
307
+ // =========== Template Schema ===========
308
+ exports.TemplateSchema = zod_1.z.object({
309
+ name: zod_1.z.string(),
310
+ category_name: zod_1.z.string(),
311
+ path: zod_1.z.string(),
312
+ updatedAt: zod_1.z.coerce.date().optional()
313
+ });
314
+ // =========== Basedocumentationslink Schema ===========
315
+ exports.BasedocumentationslinkSchema = zod_1.z.object({
316
+ key: zod_1.z.string().optional(),
317
+ category: zod_1.z.string().optional(),
318
+ link: zod_1.z.string().optional(),
319
+ updatedAt: zod_1.z.coerce.date().optional()
320
+ });
321
+ // =========== AllCourse Schema ===========
322
+ exports.AllCourseSchema = zod_1.z.object({
323
+ updatedBy: zod_1.z
324
+ .union([
325
+ zod_1.z.string(),
326
+ zod_1.z.object({ _id: zod_1.z.string().optional() }).passthrough()
327
+ ])
328
+ .optional(),
329
+ all_course_chinese: zod_1.z.string(),
330
+ all_course_english: zod_1.z.string(),
331
+ description: zod_1.z.string().optional()
332
+ });
333
+ // =========== Permission Schema ===========
334
+ exports.PermissionSchema = zod_1.z.object({
335
+ user_id: zod_1.z.string().optional(),
336
+ taigerAiQuota: zod_1.z.number().optional(),
337
+ canAssignEditors: zod_1.z.boolean().optional(),
338
+ canUseTaiGerAI: zod_1.z.boolean().optional(),
339
+ canModifyProgramList: zod_1.z.boolean().optional(),
340
+ canModifyAllBaseDocuments: zod_1.z.boolean().optional(),
341
+ canAccessAllChat: zod_1.z.boolean().optional(),
342
+ canAssignAgents: zod_1.z.boolean().optional(),
343
+ canModifyDocumentation: zod_1.z.boolean().optional(),
344
+ canAccessStudentDatabase: zod_1.z.boolean().optional(),
345
+ canAddUser: zod_1.z.boolean().optional(),
346
+ canModifyUser: zod_1.z.boolean().optional(),
347
+ isEssayWriters: zod_1.z.boolean().optional(),
348
+ updatedAt: zod_1.z.coerce.date().optional()
349
+ });
350
+ // =========== Note Schema ===========
351
+ exports.NoteSchema = zod_1.z.object({
352
+ student_id: zod_1.z.string().optional(),
353
+ notes: zod_1.z.string().optional(),
354
+ updatedAt: zod_1.z.coerce.date().optional()
355
+ });
356
+ // =========== InterviewSurveyResponse Schema ===========
357
+ exports.InterviewSurveyResponseResponseSchema = zod_1.z.object({
358
+ questionId: zod_1.z.string().optional(),
359
+ answer: zod_1.z.number().optional()
360
+ });
361
+ exports.InterviewSurveyResponseSchema = zod_1.z.object({
362
+ student_id: zod_1.z.string().optional(),
363
+ interview_id: zod_1.z.string().optional(),
364
+ program_id: zod_1.z.string().optional(),
365
+ responses: zod_1.z.array(exports.InterviewSurveyResponseResponseSchema).optional(),
366
+ isFinal: zod_1.z.boolean().optional(),
367
+ interviewQuestions: zod_1.z.string().optional(),
368
+ interviewFeedback: zod_1.z.string().optional()
369
+ });
370
+ // =========== Ticket Schema ===========
371
+ exports.TicketSchema = zod_1.z.object({
372
+ requester_id: zod_1.z.string(),
373
+ resolver_id: zod_1.z.string().optional(),
374
+ program_id: zod_1.z.string().optional(),
375
+ status: zod_1.z.string().optional(),
376
+ type: zod_1.z.string().optional(),
377
+ description: zod_1.z.string().optional(),
378
+ feedback: zod_1.z.string().optional(),
379
+ createdAt: zod_1.z.coerce.date().optional()
380
+ });
381
+ // =========== Complaint Schema ===========
382
+ exports.ComplaintMessageFileSchema = zod_1.z.object({
383
+ name: zod_1.z.string(),
384
+ path: zod_1.z.string()
385
+ });
386
+ exports.ComplaintMessageSchema = zod_1.z.object({
387
+ user_id: zod_1.z.string().optional(),
388
+ message: zod_1.z.string().optional(),
389
+ createdAt: zod_1.z.coerce.date().optional(),
390
+ file: zod_1.z.array(exports.ComplaintMessageFileSchema).optional(),
391
+ ignore_message: zod_1.z.boolean().optional()
392
+ });
393
+ exports.ComplaintSchema = zod_1.z.object({
394
+ requester_id: zod_1.z.string(),
395
+ status: zod_1.z.string().optional(),
396
+ title: zod_1.z.string().optional(),
397
+ category: zod_1.z.string().optional(),
398
+ description: zod_1.z.string().optional(),
399
+ messages: zod_1.z.array(exports.ComplaintMessageSchema).optional(),
400
+ createdAt: zod_1.z.coerce.date().optional()
401
+ });
402
+ // =========== Event Schema ===========
403
+ // Named EventBaseSchema to avoid conflict with Mongoose EventSchema from src/model/Event.ts
404
+ exports.EventBaseSchema = zod_1.z.object({
405
+ requester_id: zod_1.z.array(zod_1.z.string()).optional(),
406
+ receiver_id: zod_1.z.array(zod_1.z.string()).optional(),
407
+ isConfirmedRequester: zod_1.z.boolean().optional(),
408
+ isConfirmedReceiver: zod_1.z.boolean().optional(),
409
+ meetingLink: zod_1.z.string().optional(),
410
+ event_type: zod_1.z.string().optional(),
411
+ title: zod_1.z.string().optional(),
412
+ description: zod_1.z.string().optional(),
413
+ start: zod_1.z.coerce.date().optional(),
414
+ end: zod_1.z.coerce.date().optional()
415
+ });
416
+ // =========== Interview Schema ===========
417
+ exports.InterviewSchema = zod_1.z.object({
418
+ student_id: zod_1.z.string().optional(),
419
+ trainer_id: zod_1.z.array(zod_1.z.string()).optional(),
420
+ thread_id: zod_1.z.string().optional(),
421
+ program_id: zod_1.z.string().optional(),
422
+ event_id: zod_1.z.string().optional(),
423
+ interview_description: zod_1.z.string().optional(),
424
+ interviewer: zod_1.z.string().optional(),
425
+ interview_duration: zod_1.z.string().optional(),
426
+ interview_date: zod_1.z.coerce.date().optional(),
427
+ isClosed: zod_1.z.boolean().optional(),
428
+ start: zod_1.z.coerce.date().optional(),
429
+ end: zod_1.z.coerce.date().optional()
430
+ });
431
+ // =========== Communication Schema ===========
432
+ exports.CommunicationFileSchema = zod_1.z.object({
433
+ name: zod_1.z.string(),
434
+ path: zod_1.z.string()
435
+ });
436
+ exports.CommunicationSchema = zod_1.z.object({
437
+ student_id: zod_1.z.string().optional(),
438
+ user_id: zod_1.z.string().optional(),
439
+ message: zod_1.z.string().optional(),
440
+ readBy: zod_1.z.array(zod_1.z.string()).optional(),
441
+ timeStampReadBy: zod_1.z.unknown().optional(),
442
+ files: zod_1.z.array(exports.CommunicationFileSchema).optional(),
443
+ createdAt: zod_1.z.coerce.date().optional(),
444
+ ignore_message: zod_1.z.boolean().optional(),
445
+ ignoredMessageUpdatedAt: zod_1.z.coerce.date().optional(),
446
+ ignoredMessageBy: zod_1.z.string().optional()
447
+ });
448
+ // =========== DocumentThread Schema ===========
449
+ exports.DocumentthreadMessageFileSchema = zod_1.z.object({
450
+ name: zod_1.z.string(),
451
+ path: zod_1.z.string()
452
+ });
453
+ exports.DocumentthreadMessageSchema = zod_1.z.object({
454
+ user_id: zod_1.z.string().optional(),
455
+ message: zod_1.z.string().optional(),
456
+ createdAt: zod_1.z.coerce.date().optional(),
457
+ file: zod_1.z.array(exports.DocumentthreadMessageFileSchema).optional(),
458
+ ignore_message: zod_1.z.boolean().optional()
459
+ });
460
+ exports.DocumentthreadSchema = zod_1.z.object({
461
+ student_id: zod_1.z.string(),
462
+ program_id: zod_1.z.string().optional(),
463
+ application_id: zod_1.z.string().optional(),
464
+ outsourced_user_id: zod_1.z.array(zod_1.z.string()).optional(),
465
+ pin_by_user_id: zod_1.z.array(zod_1.z.string()).optional(),
466
+ flag_by_user_id: zod_1.z.array(zod_1.z.string()).optional(),
467
+ file_type: zod_1.z.string(),
468
+ isFinalVersion: zod_1.z.boolean().optional(),
469
+ isOriginAuthorDeclarationConfirmedByStudent: zod_1.z.boolean().optional(),
470
+ isOriginAuthorDeclarationConfirmedByStudentTimestamp: zod_1.z.coerce.date().optional(),
471
+ messages: zod_1.z.array(exports.DocumentthreadMessageSchema).optional(),
472
+ essayReviewerIds: zod_1.z.array(zod_1.z.string()).optional(),
473
+ updatedAt: zod_1.z.coerce.date().optional()
474
+ });
475
+ // =========== Audit Schema ===========
476
+ exports.AuditSchema = zod_1.z.object({
477
+ performedBy: zod_1.z.string().optional(),
478
+ targetUserId: zod_1.z.string().optional(),
479
+ targetDocumentThreadId: zod_1.z.string().optional(),
480
+ interviewThreadId: zod_1.z.string().optional(),
481
+ action: zod_1.z.string().optional(),
482
+ field: zod_1.z.string().optional(),
483
+ changes: zod_1.z
484
+ .object({
485
+ before: zod_1.z.unknown().optional(),
486
+ after: zod_1.z.unknown().optional()
487
+ })
488
+ .optional()
489
+ });
490
+ // =========== ProgramRequirement Schema ===========
491
+ exports.ProgramrequirementProgramCategorySchema = zod_1.z.object({
492
+ program_category: zod_1.z.string().optional(),
493
+ category_description: zod_1.z.string().optional(),
494
+ requiredECTS: zod_1.z.number().optional(),
495
+ keywordSets: zod_1.z.array(zod_1.z.string()).optional(),
496
+ maxScore: zod_1.z.number().optional()
497
+ });
498
+ exports.ProgramrequirementSchema = zod_1.z.object({
499
+ programId: zod_1.z.array(zod_1.z.string()).optional(),
500
+ program_categories: zod_1.z.array(exports.ProgramrequirementProgramCategorySchema).optional(),
501
+ attributes: zod_1.z.array(zod_1.z.string()).optional(),
502
+ fpso: zod_1.z.string().optional(),
503
+ admissionDescription: zod_1.z.string().optional(),
504
+ gpaScoreBoundaryGPA: zod_1.z.number().optional(),
505
+ gpaScore: zod_1.z.number().optional(),
506
+ gpaMinScore: zod_1.z.number().optional(),
507
+ coursesScore: zod_1.z.number().optional(),
508
+ cvScore: zod_1.z.number().optional(),
509
+ mlScore: zod_1.z.number().optional(),
510
+ rlScore: zod_1.z.number().optional(),
511
+ essayScore: zod_1.z.number().optional(),
512
+ gmatScore: zod_1.z.number().optional(),
513
+ greScore: zod_1.z.number().optional(),
514
+ interviewScore: zod_1.z.number().optional(),
515
+ workExperienceScore: zod_1.z.number().optional(),
516
+ testScore: zod_1.z.number().optional(),
517
+ firstRoundConsidered: zod_1.z.array(zod_1.z.string()).optional(),
518
+ secondRoundConsidered: zod_1.z.array(zod_1.z.string()).optional(),
519
+ directRejectionScore: zod_1.z.number().optional(),
520
+ directAdmissionScore: zod_1.z.number().optional(),
521
+ directRejectionSecondScore: zod_1.z.number().optional(),
522
+ directAdmissionSecondScore: zod_1.z.number().optional()
523
+ });