@taiger-common/model 1.0.53 → 1.0.55

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 (89) hide show
  1. package/dist/cjs/api/account.js +33 -0
  2. package/dist/cjs/api/applications.js +44 -0
  3. package/dist/cjs/api/audit.js +6 -0
  4. package/dist/cjs/api/auth.js +17 -0
  5. package/dist/cjs/api/common.js +28 -1
  6. package/dist/cjs/api/communications.js +13 -0
  7. package/dist/cjs/api/courses.js +21 -0
  8. package/dist/cjs/api/crm.js +85 -0
  9. package/dist/cjs/api/documentThreads.js +42 -0
  10. package/dist/cjs/api/documentations.js +31 -0
  11. package/dist/cjs/api/events.js +20 -0
  12. package/dist/cjs/api/interviews.js +33 -0
  13. package/dist/cjs/api/meetings.js +18 -0
  14. package/dist/cjs/api/notes.js +6 -0
  15. package/dist/cjs/api/permissions.js +7 -0
  16. package/dist/cjs/api/portals.js +22 -0
  17. package/dist/cjs/api/programRequirements.js +24 -0
  18. package/dist/cjs/api/programs.js +91 -0
  19. package/dist/cjs/api/search.js +22 -0
  20. package/dist/cjs/api/serialized.js +44 -0
  21. package/dist/cjs/api/students.js +27 -0
  22. package/dist/cjs/api/teams.js +46 -0
  23. package/dist/cjs/api/tickets.js +19 -0
  24. package/dist/cjs/api/users.js +40 -0
  25. package/dist/cjs/api/widgets.js +19 -0
  26. package/dist/cjs/index.js +1 -0
  27. package/dist/cjs/schema/index.js +22 -0
  28. package/dist/cjs/schema/models.js +518 -0
  29. package/dist/cjs/schema/serialized.js +202 -0
  30. package/dist/esm/api/account.js +32 -1
  31. package/dist/esm/api/applications.js +43 -1
  32. package/dist/esm/api/audit.js +5 -1
  33. package/dist/esm/api/auth.js +16 -1
  34. package/dist/esm/api/common.js +24 -1
  35. package/dist/esm/api/communications.js +12 -1
  36. package/dist/esm/api/courses.js +20 -1
  37. package/dist/esm/api/crm.js +84 -1
  38. package/dist/esm/api/documentThreads.js +41 -1
  39. package/dist/esm/api/documentations.js +30 -1
  40. package/dist/esm/api/events.js +19 -1
  41. package/dist/esm/api/interviews.js +32 -1
  42. package/dist/esm/api/meetings.js +17 -1
  43. package/dist/esm/api/notes.js +5 -1
  44. package/dist/esm/api/permissions.js +6 -1
  45. package/dist/esm/api/portals.js +21 -1
  46. package/dist/esm/api/programRequirements.js +23 -1
  47. package/dist/esm/api/programs.js +90 -1
  48. package/dist/esm/api/search.js +21 -1
  49. package/dist/esm/api/serialized.js +9 -1
  50. package/dist/esm/api/students.js +26 -1
  51. package/dist/esm/api/teams.js +45 -1
  52. package/dist/esm/api/tickets.js +18 -1
  53. package/dist/esm/api/users.js +39 -1
  54. package/dist/esm/api/widgets.js +18 -1
  55. package/dist/esm/index.js +1 -0
  56. package/dist/esm/schema/index.js +6 -0
  57. package/dist/esm/schema/models.js +515 -0
  58. package/dist/esm/schema/serialized.js +199 -0
  59. package/dist/types/api/account.d.ts +485 -30
  60. package/dist/types/api/applications.d.ts +3392 -39
  61. package/dist/types/api/audit.d.ts +88 -3
  62. package/dist/types/api/auth.d.ts +3402 -14
  63. package/dist/types/api/common.d.ts +68 -8
  64. package/dist/types/api/communications.d.ts +609 -10
  65. package/dist/types/api/courses.d.ts +781 -15
  66. package/dist/types/api/crm.d.ts +1091 -85
  67. package/dist/types/api/documentThreads.d.ts +38228 -39
  68. package/dist/types/api/documentations.d.ts +913 -24
  69. package/dist/types/api/events.d.ts +7191 -17
  70. package/dist/types/api/interviews.d.ts +785 -30
  71. package/dist/types/api/meetings.d.ts +45 -16
  72. package/dist/types/api/notes.d.ts +83 -4
  73. package/dist/types/api/permissions.d.ts +193 -4
  74. package/dist/types/api/portals.d.ts +764 -17
  75. package/dist/types/api/programRequirements.d.ts +2675 -19
  76. package/dist/types/api/programs.d.ts +3019 -96
  77. package/dist/types/api/search.d.ts +286 -20
  78. package/dist/types/api/serialized.d.ts +3 -152
  79. package/dist/types/api/students.d.ts +289 -24
  80. package/dist/types/api/teams.d.ts +3652 -45
  81. package/dist/types/api/tickets.d.ts +948 -14
  82. package/dist/types/api/users.d.ts +6948 -39
  83. package/dist/types/api/widgets.d.ts +221 -16
  84. package/dist/types/index.d.ts +1 -0
  85. package/dist/types/schema/index.d.ts +6 -0
  86. package/dist/types/schema/models.d.ts +2028 -0
  87. package/dist/types/schema/serialized.d.ts +8813 -0
  88. package/dist/umd/index.js +1 -1
  89. package/package.json +4 -2
@@ -0,0 +1,518 @@
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.string(),
324
+ all_course_chinese: zod_1.z.string(),
325
+ all_course_english: zod_1.z.string(),
326
+ description: zod_1.z.string()
327
+ });
328
+ // =========== Permission Schema ===========
329
+ exports.PermissionSchema = zod_1.z.object({
330
+ user_id: zod_1.z.string().optional(),
331
+ taigerAiQuota: zod_1.z.number().optional(),
332
+ canAssignEditors: zod_1.z.boolean().optional(),
333
+ canUseTaiGerAI: zod_1.z.boolean().optional(),
334
+ canModifyProgramList: zod_1.z.boolean().optional(),
335
+ canModifyAllBaseDocuments: zod_1.z.boolean().optional(),
336
+ canAccessAllChat: zod_1.z.boolean().optional(),
337
+ canAssignAgents: zod_1.z.boolean().optional(),
338
+ canModifyDocumentation: zod_1.z.boolean().optional(),
339
+ canAccessStudentDatabase: zod_1.z.boolean().optional(),
340
+ canAddUser: zod_1.z.boolean().optional(),
341
+ canModifyUser: zod_1.z.boolean().optional(),
342
+ isEssayWriters: zod_1.z.boolean().optional(),
343
+ updatedAt: zod_1.z.coerce.date().optional()
344
+ });
345
+ // =========== Note Schema ===========
346
+ exports.NoteSchema = zod_1.z.object({
347
+ student_id: zod_1.z.string().optional(),
348
+ notes: zod_1.z.string().optional(),
349
+ updatedAt: zod_1.z.coerce.date().optional()
350
+ });
351
+ // =========== InterviewSurveyResponse Schema ===========
352
+ exports.InterviewSurveyResponseResponseSchema = zod_1.z.object({
353
+ questionId: zod_1.z.string().optional(),
354
+ answer: zod_1.z.number().optional()
355
+ });
356
+ exports.InterviewSurveyResponseSchema = zod_1.z.object({
357
+ student_id: zod_1.z.string().optional(),
358
+ interview_id: zod_1.z.string().optional(),
359
+ program_id: zod_1.z.string().optional(),
360
+ responses: zod_1.z.array(exports.InterviewSurveyResponseResponseSchema).optional(),
361
+ isFinal: zod_1.z.boolean().optional(),
362
+ interviewQuestions: zod_1.z.string().optional(),
363
+ interviewFeedback: zod_1.z.string().optional()
364
+ });
365
+ // =========== Ticket Schema ===========
366
+ exports.TicketSchema = zod_1.z.object({
367
+ requester_id: zod_1.z.string(),
368
+ resolver_id: zod_1.z.string().optional(),
369
+ program_id: zod_1.z.string().optional(),
370
+ status: zod_1.z.string().optional(),
371
+ type: zod_1.z.string().optional(),
372
+ description: zod_1.z.string().optional(),
373
+ feedback: zod_1.z.string().optional(),
374
+ createdAt: zod_1.z.coerce.date().optional()
375
+ });
376
+ // =========== Complaint Schema ===========
377
+ exports.ComplaintMessageFileSchema = zod_1.z.object({
378
+ name: zod_1.z.string(),
379
+ path: zod_1.z.string()
380
+ });
381
+ exports.ComplaintMessageSchema = zod_1.z.object({
382
+ user_id: zod_1.z.string().optional(),
383
+ message: zod_1.z.string().optional(),
384
+ createdAt: zod_1.z.coerce.date().optional(),
385
+ file: zod_1.z.array(exports.ComplaintMessageFileSchema).optional(),
386
+ ignore_message: zod_1.z.boolean().optional()
387
+ });
388
+ exports.ComplaintSchema = zod_1.z.object({
389
+ requester_id: zod_1.z.string(),
390
+ status: zod_1.z.string().optional(),
391
+ title: zod_1.z.string().optional(),
392
+ category: zod_1.z.string().optional(),
393
+ description: zod_1.z.string().optional(),
394
+ messages: zod_1.z.array(exports.ComplaintMessageSchema).optional(),
395
+ createdAt: zod_1.z.coerce.date().optional()
396
+ });
397
+ // =========== Event Schema ===========
398
+ // Named EventBaseSchema to avoid conflict with Mongoose EventSchema from src/model/Event.ts
399
+ exports.EventBaseSchema = zod_1.z.object({
400
+ requester_id: zod_1.z.array(zod_1.z.string()).optional(),
401
+ receiver_id: zod_1.z.array(zod_1.z.string()).optional(),
402
+ isConfirmedRequester: zod_1.z.boolean().optional(),
403
+ isConfirmedReceiver: zod_1.z.boolean().optional(),
404
+ meetingLink: zod_1.z.string().optional(),
405
+ event_type: zod_1.z.string().optional(),
406
+ title: zod_1.z.string().optional(),
407
+ description: zod_1.z.string().optional(),
408
+ start: zod_1.z.coerce.date().optional(),
409
+ end: zod_1.z.coerce.date().optional()
410
+ });
411
+ // =========== Interview Schema ===========
412
+ exports.InterviewSchema = zod_1.z.object({
413
+ student_id: zod_1.z.string().optional(),
414
+ trainer_id: zod_1.z.array(zod_1.z.string()).optional(),
415
+ thread_id: zod_1.z.string().optional(),
416
+ program_id: zod_1.z.string().optional(),
417
+ event_id: zod_1.z.string().optional(),
418
+ interview_description: zod_1.z.string().optional(),
419
+ interviewer: zod_1.z.string().optional(),
420
+ interview_duration: zod_1.z.string().optional(),
421
+ interview_date: zod_1.z.coerce.date().optional(),
422
+ isClosed: zod_1.z.boolean().optional(),
423
+ start: zod_1.z.coerce.date().optional(),
424
+ end: zod_1.z.coerce.date().optional()
425
+ });
426
+ // =========== Communication Schema ===========
427
+ exports.CommunicationFileSchema = zod_1.z.object({
428
+ name: zod_1.z.string(),
429
+ path: zod_1.z.string()
430
+ });
431
+ exports.CommunicationSchema = zod_1.z.object({
432
+ student_id: zod_1.z.string().optional(),
433
+ user_id: zod_1.z.string().optional(),
434
+ message: zod_1.z.string().optional(),
435
+ readBy: zod_1.z.array(zod_1.z.string()).optional(),
436
+ timeStampReadBy: zod_1.z.unknown().optional(),
437
+ files: zod_1.z.array(exports.CommunicationFileSchema).optional(),
438
+ createdAt: zod_1.z.coerce.date().optional(),
439
+ ignore_message: zod_1.z.boolean().optional(),
440
+ ignoredMessageUpdatedAt: zod_1.z.coerce.date().optional(),
441
+ ignoredMessageBy: zod_1.z.string().optional()
442
+ });
443
+ // =========== DocumentThread Schema ===========
444
+ exports.DocumentthreadMessageFileSchema = zod_1.z.object({
445
+ name: zod_1.z.string(),
446
+ path: zod_1.z.string()
447
+ });
448
+ exports.DocumentthreadMessageSchema = zod_1.z.object({
449
+ user_id: zod_1.z.string().optional(),
450
+ message: zod_1.z.string().optional(),
451
+ createdAt: zod_1.z.coerce.date().optional(),
452
+ file: zod_1.z.array(exports.DocumentthreadMessageFileSchema).optional(),
453
+ ignore_message: zod_1.z.boolean().optional()
454
+ });
455
+ exports.DocumentthreadSchema = zod_1.z.object({
456
+ student_id: zod_1.z.string(),
457
+ program_id: zod_1.z.string().optional(),
458
+ application_id: zod_1.z.string().optional(),
459
+ outsourced_user_id: zod_1.z.array(zod_1.z.string()).optional(),
460
+ pin_by_user_id: zod_1.z.array(zod_1.z.string()).optional(),
461
+ flag_by_user_id: zod_1.z.array(zod_1.z.string()).optional(),
462
+ file_type: zod_1.z.string(),
463
+ isFinalVersion: zod_1.z.boolean().optional(),
464
+ isOriginAuthorDeclarationConfirmedByStudent: zod_1.z.boolean().optional(),
465
+ isOriginAuthorDeclarationConfirmedByStudentTimestamp: zod_1.z.coerce.date().optional(),
466
+ messages: zod_1.z.array(exports.DocumentthreadMessageSchema).optional(),
467
+ essayReviewerIds: zod_1.z.array(zod_1.z.string()).optional(),
468
+ updatedAt: zod_1.z.coerce.date().optional()
469
+ });
470
+ // =========== Audit Schema ===========
471
+ exports.AuditSchema = zod_1.z.object({
472
+ performedBy: zod_1.z.string().optional(),
473
+ targetUserId: zod_1.z.string().optional(),
474
+ targetDocumentThreadId: zod_1.z.string().optional(),
475
+ interviewThreadId: zod_1.z.string().optional(),
476
+ action: zod_1.z.string().optional(),
477
+ field: zod_1.z.string().optional(),
478
+ changes: zod_1.z
479
+ .object({
480
+ before: zod_1.z.unknown().optional(),
481
+ after: zod_1.z.unknown().optional()
482
+ })
483
+ .optional()
484
+ });
485
+ // =========== ProgramRequirement Schema ===========
486
+ exports.ProgramrequirementProgramCategorySchema = zod_1.z.object({
487
+ program_category: zod_1.z.string().optional(),
488
+ category_description: zod_1.z.string().optional(),
489
+ requiredECTS: zod_1.z.number().optional(),
490
+ keywordSets: zod_1.z.array(zod_1.z.string()).optional(),
491
+ maxScore: zod_1.z.number().optional()
492
+ });
493
+ exports.ProgramrequirementSchema = zod_1.z.object({
494
+ programId: zod_1.z.array(zod_1.z.string()).optional(),
495
+ program_categories: zod_1.z.array(exports.ProgramrequirementProgramCategorySchema).optional(),
496
+ attributes: zod_1.z.array(zod_1.z.string()).optional(),
497
+ fpso: zod_1.z.string().optional(),
498
+ admissionDescription: zod_1.z.string().optional(),
499
+ gpaScoreBoundaryGPA: zod_1.z.number().optional(),
500
+ gpaScore: zod_1.z.number().optional(),
501
+ gpaMinScore: zod_1.z.number().optional(),
502
+ coursesScore: zod_1.z.number().optional(),
503
+ cvScore: zod_1.z.number().optional(),
504
+ mlScore: zod_1.z.number().optional(),
505
+ rlScore: zod_1.z.number().optional(),
506
+ essayScore: zod_1.z.number().optional(),
507
+ gmatScore: zod_1.z.number().optional(),
508
+ greScore: zod_1.z.number().optional(),
509
+ interviewScore: zod_1.z.number().optional(),
510
+ workExperienceScore: zod_1.z.number().optional(),
511
+ testScore: zod_1.z.number().optional(),
512
+ firstRoundConsidered: zod_1.z.array(zod_1.z.string()).optional(),
513
+ secondRoundConsidered: zod_1.z.array(zod_1.z.string()).optional(),
514
+ directRejectionScore: zod_1.z.number().optional(),
515
+ directAdmissionScore: zod_1.z.number().optional(),
516
+ directRejectionSecondScore: zod_1.z.number().optional(),
517
+ directAdmissionSecondScore: zod_1.z.number().optional()
518
+ });