@aibrains/shared-types 0.1.0

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 (158) hide show
  1. package/README.md +170 -0
  2. package/dist/index.d.ts +48 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +74 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/mappers/edfi/calendar.mapper.d.ts +158 -0
  7. package/dist/mappers/edfi/calendar.mapper.d.ts.map +1 -0
  8. package/dist/mappers/edfi/calendar.mapper.js +235 -0
  9. package/dist/mappers/edfi/calendar.mapper.js.map +1 -0
  10. package/dist/mappers/edfi/credential.mapper.d.ts +50 -0
  11. package/dist/mappers/edfi/credential.mapper.d.ts.map +1 -0
  12. package/dist/mappers/edfi/credential.mapper.js +123 -0
  13. package/dist/mappers/edfi/credential.mapper.js.map +1 -0
  14. package/dist/mappers/edfi/index.d.ts +10 -0
  15. package/dist/mappers/edfi/index.d.ts.map +1 -0
  16. package/dist/mappers/edfi/index.js +26 -0
  17. package/dist/mappers/edfi/index.js.map +1 -0
  18. package/dist/mappers/edfi/staff.mapper.d.ts +96 -0
  19. package/dist/mappers/edfi/staff.mapper.d.ts.map +1 -0
  20. package/dist/mappers/edfi/staff.mapper.js +138 -0
  21. package/dist/mappers/edfi/staff.mapper.js.map +1 -0
  22. package/dist/mappers/index.d.ts +7 -0
  23. package/dist/mappers/index.d.ts.map +1 -0
  24. package/dist/mappers/index.js +23 -0
  25. package/dist/mappers/index.js.map +1 -0
  26. package/dist/schemas/academics/assignment.schema.d.ts +1463 -0
  27. package/dist/schemas/academics/assignment.schema.d.ts.map +1 -0
  28. package/dist/schemas/academics/assignment.schema.js +195 -0
  29. package/dist/schemas/academics/assignment.schema.js.map +1 -0
  30. package/dist/schemas/academics/attendance.schema.d.ts +762 -0
  31. package/dist/schemas/academics/attendance.schema.d.ts.map +1 -0
  32. package/dist/schemas/academics/attendance.schema.js +250 -0
  33. package/dist/schemas/academics/attendance.schema.js.map +1 -0
  34. package/dist/schemas/academics/classroom.schema.d.ts +742 -0
  35. package/dist/schemas/academics/classroom.schema.d.ts.map +1 -0
  36. package/dist/schemas/academics/classroom.schema.js +164 -0
  37. package/dist/schemas/academics/classroom.schema.js.map +1 -0
  38. package/dist/schemas/academics/course-section.schema.d.ts +388 -0
  39. package/dist/schemas/academics/course-section.schema.d.ts.map +1 -0
  40. package/dist/schemas/academics/course-section.schema.js +128 -0
  41. package/dist/schemas/academics/course-section.schema.js.map +1 -0
  42. package/dist/schemas/academics/course.schema.d.ts +778 -0
  43. package/dist/schemas/academics/course.schema.d.ts.map +1 -0
  44. package/dist/schemas/academics/course.schema.js +207 -0
  45. package/dist/schemas/academics/course.schema.js.map +1 -0
  46. package/dist/schemas/academics/grade.schema.d.ts +848 -0
  47. package/dist/schemas/academics/grade.schema.d.ts.map +1 -0
  48. package/dist/schemas/academics/grade.schema.js +251 -0
  49. package/dist/schemas/academics/grade.schema.js.map +1 -0
  50. package/dist/schemas/academics/index.d.ts +13 -0
  51. package/dist/schemas/academics/index.d.ts.map +1 -0
  52. package/dist/schemas/academics/index.js +29 -0
  53. package/dist/schemas/academics/index.js.map +1 -0
  54. package/dist/schemas/academics/student.schema.d.ts +2891 -0
  55. package/dist/schemas/academics/student.schema.d.ts.map +1 -0
  56. package/dist/schemas/academics/student.schema.js +249 -0
  57. package/dist/schemas/academics/student.schema.js.map +1 -0
  58. package/dist/schemas/common.d.ts +183 -0
  59. package/dist/schemas/common.d.ts.map +1 -0
  60. package/dist/schemas/common.js +126 -0
  61. package/dist/schemas/common.js.map +1 -0
  62. package/dist/schemas/enrollment/enrollment.schema.d.ts +2799 -0
  63. package/dist/schemas/enrollment/enrollment.schema.d.ts.map +1 -0
  64. package/dist/schemas/enrollment/enrollment.schema.js +435 -0
  65. package/dist/schemas/enrollment/enrollment.schema.js.map +1 -0
  66. package/dist/schemas/enrollment/index.d.ts +7 -0
  67. package/dist/schemas/enrollment/index.d.ts.map +1 -0
  68. package/dist/schemas/enrollment/index.js +23 -0
  69. package/dist/schemas/enrollment/index.js.map +1 -0
  70. package/dist/schemas/identity/academic-year.schema.d.ts +546 -0
  71. package/dist/schemas/identity/academic-year.schema.d.ts.map +1 -0
  72. package/dist/schemas/identity/academic-year.schema.js +137 -0
  73. package/dist/schemas/identity/academic-year.schema.js.map +1 -0
  74. package/dist/schemas/identity/auth.schema.d.ts +670 -0
  75. package/dist/schemas/identity/auth.schema.d.ts.map +1 -0
  76. package/dist/schemas/identity/auth.schema.js +126 -0
  77. package/dist/schemas/identity/auth.schema.js.map +1 -0
  78. package/dist/schemas/identity/bell-schedule.schema.d.ts +630 -0
  79. package/dist/schemas/identity/bell-schedule.schema.d.ts.map +1 -0
  80. package/dist/schemas/identity/bell-schedule.schema.js +143 -0
  81. package/dist/schemas/identity/bell-schedule.schema.js.map +1 -0
  82. package/dist/schemas/identity/calendar-date.schema.d.ts +830 -0
  83. package/dist/schemas/identity/calendar-date.schema.d.ts.map +1 -0
  84. package/dist/schemas/identity/calendar-date.schema.js +208 -0
  85. package/dist/schemas/identity/calendar-date.schema.js.map +1 -0
  86. package/dist/schemas/identity/credential.schema.d.ts +472 -0
  87. package/dist/schemas/identity/credential.schema.d.ts.map +1 -0
  88. package/dist/schemas/identity/credential.schema.js +200 -0
  89. package/dist/schemas/identity/credential.schema.js.map +1 -0
  90. package/dist/schemas/identity/department.schema.d.ts +567 -0
  91. package/dist/schemas/identity/department.schema.d.ts.map +1 -0
  92. package/dist/schemas/identity/department.schema.js +113 -0
  93. package/dist/schemas/identity/department.schema.js.map +1 -0
  94. package/dist/schemas/identity/index.d.ts +21 -0
  95. package/dist/schemas/identity/index.d.ts.map +1 -0
  96. package/dist/schemas/identity/index.js +39 -0
  97. package/dist/schemas/identity/index.js.map +1 -0
  98. package/dist/schemas/identity/leave.schema.d.ts +725 -0
  99. package/dist/schemas/identity/leave.schema.d.ts.map +1 -0
  100. package/dist/schemas/identity/leave.schema.js +204 -0
  101. package/dist/schemas/identity/leave.schema.js.map +1 -0
  102. package/dist/schemas/identity/role.schema.d.ts +356 -0
  103. package/dist/schemas/identity/role.schema.d.ts.map +1 -0
  104. package/dist/schemas/identity/role.schema.js +124 -0
  105. package/dist/schemas/identity/role.schema.js.map +1 -0
  106. package/dist/schemas/identity/school-year.schema.d.ts +303 -0
  107. package/dist/schemas/identity/school-year.schema.d.ts.map +1 -0
  108. package/dist/schemas/identity/school-year.schema.js +59 -0
  109. package/dist/schemas/identity/school-year.schema.js.map +1 -0
  110. package/dist/schemas/identity/school.schema.d.ts +844 -0
  111. package/dist/schemas/identity/school.schema.d.ts.map +1 -0
  112. package/dist/schemas/identity/school.schema.js +139 -0
  113. package/dist/schemas/identity/school.schema.js.map +1 -0
  114. package/dist/schemas/identity/security.schema.d.ts +422 -0
  115. package/dist/schemas/identity/security.schema.d.ts.map +1 -0
  116. package/dist/schemas/identity/security.schema.js +151 -0
  117. package/dist/schemas/identity/security.schema.js.map +1 -0
  118. package/dist/schemas/identity/session.schema.d.ts +193 -0
  119. package/dist/schemas/identity/session.schema.d.ts.map +1 -0
  120. package/dist/schemas/identity/session.schema.js +59 -0
  121. package/dist/schemas/identity/session.schema.js.map +1 -0
  122. package/dist/schemas/identity/staff.schema.d.ts +1037 -0
  123. package/dist/schemas/identity/staff.schema.d.ts.map +1 -0
  124. package/dist/schemas/identity/staff.schema.js +251 -0
  125. package/dist/schemas/identity/staff.schema.js.map +1 -0
  126. package/dist/schemas/identity/tenant.schema.d.ts +313 -0
  127. package/dist/schemas/identity/tenant.schema.d.ts.map +1 -0
  128. package/dist/schemas/identity/tenant.schema.js +81 -0
  129. package/dist/schemas/identity/tenant.schema.js.map +1 -0
  130. package/dist/schemas/identity/user.schema.d.ts +921 -0
  131. package/dist/schemas/identity/user.schema.d.ts.map +1 -0
  132. package/dist/schemas/identity/user.schema.js +201 -0
  133. package/dist/schemas/identity/user.schema.js.map +1 -0
  134. package/dist/schemas/index.d.ts +10 -0
  135. package/dist/schemas/index.d.ts.map +1 -0
  136. package/dist/schemas/index.js +26 -0
  137. package/dist/schemas/index.js.map +1 -0
  138. package/dist/validators/academic-year.d.ts +90 -0
  139. package/dist/validators/academic-year.d.ts.map +1 -0
  140. package/dist/validators/academic-year.js +190 -0
  141. package/dist/validators/academic-year.js.map +1 -0
  142. package/dist/validators/date-range.d.ts +142 -0
  143. package/dist/validators/date-range.d.ts.map +1 -0
  144. package/dist/validators/date-range.js +170 -0
  145. package/dist/validators/date-range.js.map +1 -0
  146. package/dist/validators/grade-level.d.ts +80 -0
  147. package/dist/validators/grade-level.d.ts.map +1 -0
  148. package/dist/validators/grade-level.js +157 -0
  149. package/dist/validators/grade-level.js.map +1 -0
  150. package/dist/validators/index.d.ts +10 -0
  151. package/dist/validators/index.d.ts.map +1 -0
  152. package/dist/validators/index.js +26 -0
  153. package/dist/validators/index.js.map +1 -0
  154. package/dist/validators/password.d.ts +60 -0
  155. package/dist/validators/password.d.ts.map +1 -0
  156. package/dist/validators/password.js +81 -0
  157. package/dist/validators/password.js.map +1 -0
  158. package/package.json +50 -0
@@ -0,0 +1,567 @@
1
+ /**
2
+ * Department and School Configuration Schemas - Identity Service
3
+ *
4
+ * Zod schemas for department and school configuration DTOs.
5
+ */
6
+ import { z } from 'zod';
7
+ export declare const createDepartmentSchema: z.ZodObject<{
8
+ code: z.ZodString;
9
+ name: z.ZodString;
10
+ description: z.ZodOptional<z.ZodString>;
11
+ headUserId: z.ZodOptional<z.ZodString>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ code: string;
14
+ name: string;
15
+ description?: string | undefined;
16
+ headUserId?: string | undefined;
17
+ }, {
18
+ code: string;
19
+ name: string;
20
+ description?: string | undefined;
21
+ headUserId?: string | undefined;
22
+ }>;
23
+ export type CreateDepartmentDto = z.infer<typeof createDepartmentSchema>;
24
+ export declare const updateDepartmentSchema: z.ZodObject<{
25
+ name: z.ZodOptional<z.ZodString>;
26
+ description: z.ZodOptional<z.ZodString>;
27
+ headUserId: z.ZodOptional<z.ZodString>;
28
+ isActive: z.ZodOptional<z.ZodBoolean>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ name?: string | undefined;
31
+ isActive?: boolean | undefined;
32
+ description?: string | undefined;
33
+ headUserId?: string | undefined;
34
+ }, {
35
+ name?: string | undefined;
36
+ isActive?: boolean | undefined;
37
+ description?: string | undefined;
38
+ headUserId?: string | undefined;
39
+ }>;
40
+ export type UpdateDepartmentDto = z.infer<typeof updateDepartmentSchema>;
41
+ export declare const departmentResponseSchema: z.ZodObject<{
42
+ departmentId: z.ZodString;
43
+ schoolId: z.ZodString;
44
+ code: z.ZodString;
45
+ name: z.ZodString;
46
+ description: z.ZodOptional<z.ZodString>;
47
+ headUserId: z.ZodOptional<z.ZodString>;
48
+ headName: z.ZodOptional<z.ZodString>;
49
+ isActive: z.ZodBoolean;
50
+ teacherCount: z.ZodOptional<z.ZodNumber>;
51
+ courseCount: z.ZodOptional<z.ZodNumber>;
52
+ createdAt: z.ZodString;
53
+ updatedAt: z.ZodString;
54
+ }, "strip", z.ZodTypeAny, {
55
+ code: string;
56
+ createdAt: string;
57
+ updatedAt: string;
58
+ name: string;
59
+ schoolId: string;
60
+ isActive: boolean;
61
+ departmentId: string;
62
+ teacherCount?: number | undefined;
63
+ description?: string | undefined;
64
+ headUserId?: string | undefined;
65
+ headName?: string | undefined;
66
+ courseCount?: number | undefined;
67
+ }, {
68
+ code: string;
69
+ createdAt: string;
70
+ updatedAt: string;
71
+ name: string;
72
+ schoolId: string;
73
+ isActive: boolean;
74
+ departmentId: string;
75
+ teacherCount?: number | undefined;
76
+ description?: string | undefined;
77
+ headUserId?: string | undefined;
78
+ headName?: string | undefined;
79
+ courseCount?: number | undefined;
80
+ }>;
81
+ export type DepartmentResponseDto = z.infer<typeof departmentResponseSchema>;
82
+ export declare const departmentListResponseSchema: z.ZodObject<{
83
+ items: z.ZodArray<z.ZodObject<{
84
+ departmentId: z.ZodString;
85
+ schoolId: z.ZodString;
86
+ code: z.ZodString;
87
+ name: z.ZodString;
88
+ description: z.ZodOptional<z.ZodString>;
89
+ headUserId: z.ZodOptional<z.ZodString>;
90
+ headName: z.ZodOptional<z.ZodString>;
91
+ isActive: z.ZodBoolean;
92
+ teacherCount: z.ZodOptional<z.ZodNumber>;
93
+ courseCount: z.ZodOptional<z.ZodNumber>;
94
+ createdAt: z.ZodString;
95
+ updatedAt: z.ZodString;
96
+ }, "strip", z.ZodTypeAny, {
97
+ code: string;
98
+ createdAt: string;
99
+ updatedAt: string;
100
+ name: string;
101
+ schoolId: string;
102
+ isActive: boolean;
103
+ departmentId: string;
104
+ teacherCount?: number | undefined;
105
+ description?: string | undefined;
106
+ headUserId?: string | undefined;
107
+ headName?: string | undefined;
108
+ courseCount?: number | undefined;
109
+ }, {
110
+ code: string;
111
+ createdAt: string;
112
+ updatedAt: string;
113
+ name: string;
114
+ schoolId: string;
115
+ isActive: boolean;
116
+ departmentId: string;
117
+ teacherCount?: number | undefined;
118
+ description?: string | undefined;
119
+ headUserId?: string | undefined;
120
+ headName?: string | undefined;
121
+ courseCount?: number | undefined;
122
+ }>, "many">;
123
+ lastEvaluatedKey: z.ZodOptional<z.ZodString>;
124
+ hasMore: z.ZodBoolean;
125
+ total: z.ZodOptional<z.ZodNumber>;
126
+ }, "strip", z.ZodTypeAny, {
127
+ items: {
128
+ code: string;
129
+ createdAt: string;
130
+ updatedAt: string;
131
+ name: string;
132
+ schoolId: string;
133
+ isActive: boolean;
134
+ departmentId: string;
135
+ teacherCount?: number | undefined;
136
+ description?: string | undefined;
137
+ headUserId?: string | undefined;
138
+ headName?: string | undefined;
139
+ courseCount?: number | undefined;
140
+ }[];
141
+ hasMore: boolean;
142
+ lastEvaluatedKey?: string | undefined;
143
+ total?: number | undefined;
144
+ }, {
145
+ items: {
146
+ code: string;
147
+ createdAt: string;
148
+ updatedAt: string;
149
+ name: string;
150
+ schoolId: string;
151
+ isActive: boolean;
152
+ departmentId: string;
153
+ teacherCount?: number | undefined;
154
+ description?: string | undefined;
155
+ headUserId?: string | undefined;
156
+ headName?: string | undefined;
157
+ courseCount?: number | undefined;
158
+ }[];
159
+ hasMore: boolean;
160
+ lastEvaluatedKey?: string | undefined;
161
+ total?: number | undefined;
162
+ }>;
163
+ export type DepartmentListResponseDto = z.infer<typeof departmentListResponseSchema>;
164
+ export declare const schoolGradingScaleTypeSchema: z.ZodEnum<["letter", "percentage", "points", "custom"]>;
165
+ export type SchoolGradingScaleType = z.infer<typeof schoolGradingScaleTypeSchema>;
166
+ /**
167
+ * Grade level configuration for school grading scale
168
+ * (e.g., A = 90-100, B = 80-89, etc.)
169
+ */
170
+ export declare const gradeLevelConfigSchema: z.ZodObject<{
171
+ letter: z.ZodString;
172
+ minScore: z.ZodNumber;
173
+ maxScore: z.ZodNumber;
174
+ gpa: z.ZodOptional<z.ZodNumber>;
175
+ }, "strip", z.ZodTypeAny, {
176
+ letter: string;
177
+ minScore: number;
178
+ maxScore: number;
179
+ gpa?: number | undefined;
180
+ }, {
181
+ letter: string;
182
+ minScore: number;
183
+ maxScore: number;
184
+ gpa?: number | undefined;
185
+ }>;
186
+ export type GradeLevelConfigDto = z.infer<typeof gradeLevelConfigSchema>;
187
+ /**
188
+ * School-level grading scale configuration
189
+ */
190
+ export declare const schoolGradingScaleSchema: z.ZodObject<{
191
+ type: z.ZodEnum<["letter", "percentage", "points", "custom"]>;
192
+ passingGrade: z.ZodNumber;
193
+ scale: z.ZodArray<z.ZodObject<{
194
+ letter: z.ZodString;
195
+ minScore: z.ZodNumber;
196
+ maxScore: z.ZodNumber;
197
+ gpa: z.ZodOptional<z.ZodNumber>;
198
+ }, "strip", z.ZodTypeAny, {
199
+ letter: string;
200
+ minScore: number;
201
+ maxScore: number;
202
+ gpa?: number | undefined;
203
+ }, {
204
+ letter: string;
205
+ minScore: number;
206
+ maxScore: number;
207
+ gpa?: number | undefined;
208
+ }>, "many">;
209
+ }, "strip", z.ZodTypeAny, {
210
+ type: "custom" | "letter" | "percentage" | "points";
211
+ passingGrade: number;
212
+ scale: {
213
+ letter: string;
214
+ minScore: number;
215
+ maxScore: number;
216
+ gpa?: number | undefined;
217
+ }[];
218
+ }, {
219
+ type: "custom" | "letter" | "percentage" | "points";
220
+ passingGrade: number;
221
+ scale: {
222
+ letter: string;
223
+ minScore: number;
224
+ maxScore: number;
225
+ gpa?: number | undefined;
226
+ }[];
227
+ }>;
228
+ export type SchoolGradingScaleDto = z.infer<typeof schoolGradingScaleSchema>;
229
+ export declare const schoolFeaturesSchema: z.ZodObject<{
230
+ attendance: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
231
+ grades: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
232
+ enrollment: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
233
+ curriculum: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
234
+ scheduling: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
235
+ specialPrograms: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
236
+ parentPortal: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
237
+ studentPortal: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
238
+ }, "strip", z.ZodTypeAny, {
239
+ attendance?: boolean | undefined;
240
+ grades?: boolean | undefined;
241
+ enrollment?: boolean | undefined;
242
+ curriculum?: boolean | undefined;
243
+ scheduling?: boolean | undefined;
244
+ specialPrograms?: boolean | undefined;
245
+ parentPortal?: boolean | undefined;
246
+ studentPortal?: boolean | undefined;
247
+ }, {
248
+ attendance?: boolean | undefined;
249
+ grades?: boolean | undefined;
250
+ enrollment?: boolean | undefined;
251
+ curriculum?: boolean | undefined;
252
+ scheduling?: boolean | undefined;
253
+ specialPrograms?: boolean | undefined;
254
+ parentPortal?: boolean | undefined;
255
+ studentPortal?: boolean | undefined;
256
+ }>;
257
+ export type SchoolFeaturesDto = z.infer<typeof schoolFeaturesSchema>;
258
+ export declare const updateSchoolConfigSchema: z.ZodObject<{
259
+ timezone: z.ZodOptional<z.ZodString>;
260
+ locale: z.ZodOptional<z.ZodString>;
261
+ dateFormat: z.ZodOptional<z.ZodString>;
262
+ timeFormat: z.ZodOptional<z.ZodEnum<["12h", "24h"]>>;
263
+ academicCalendarType: z.ZodOptional<z.ZodEnum<["semester", "quarter", "trimester"]>>;
264
+ gradingScale: z.ZodOptional<z.ZodObject<{
265
+ type: z.ZodEnum<["letter", "percentage", "points", "custom"]>;
266
+ passingGrade: z.ZodNumber;
267
+ scale: z.ZodArray<z.ZodObject<{
268
+ letter: z.ZodString;
269
+ minScore: z.ZodNumber;
270
+ maxScore: z.ZodNumber;
271
+ gpa: z.ZodOptional<z.ZodNumber>;
272
+ }, "strip", z.ZodTypeAny, {
273
+ letter: string;
274
+ minScore: number;
275
+ maxScore: number;
276
+ gpa?: number | undefined;
277
+ }, {
278
+ letter: string;
279
+ minScore: number;
280
+ maxScore: number;
281
+ gpa?: number | undefined;
282
+ }>, "many">;
283
+ }, "strip", z.ZodTypeAny, {
284
+ type: "custom" | "letter" | "percentage" | "points";
285
+ passingGrade: number;
286
+ scale: {
287
+ letter: string;
288
+ minScore: number;
289
+ maxScore: number;
290
+ gpa?: number | undefined;
291
+ }[];
292
+ }, {
293
+ type: "custom" | "letter" | "percentage" | "points";
294
+ passingGrade: number;
295
+ scale: {
296
+ letter: string;
297
+ minScore: number;
298
+ maxScore: number;
299
+ gpa?: number | undefined;
300
+ }[];
301
+ }>>;
302
+ attendanceRequired: z.ZodOptional<z.ZodBoolean>;
303
+ schoolDays: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
304
+ startTime: z.ZodOptional<z.ZodString>;
305
+ endTime: z.ZodOptional<z.ZodString>;
306
+ periodDuration: z.ZodOptional<z.ZodNumber>;
307
+ notificationsEnabled: z.ZodOptional<z.ZodBoolean>;
308
+ emailNotifications: z.ZodOptional<z.ZodBoolean>;
309
+ smsNotifications: z.ZodOptional<z.ZodBoolean>;
310
+ features: z.ZodOptional<z.ZodObject<{
311
+ attendance: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
312
+ grades: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
313
+ enrollment: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
314
+ curriculum: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
315
+ scheduling: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
316
+ specialPrograms: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
317
+ parentPortal: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
318
+ studentPortal: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
319
+ }, "strip", z.ZodTypeAny, {
320
+ attendance?: boolean | undefined;
321
+ grades?: boolean | undefined;
322
+ enrollment?: boolean | undefined;
323
+ curriculum?: boolean | undefined;
324
+ scheduling?: boolean | undefined;
325
+ specialPrograms?: boolean | undefined;
326
+ parentPortal?: boolean | undefined;
327
+ studentPortal?: boolean | undefined;
328
+ }, {
329
+ attendance?: boolean | undefined;
330
+ grades?: boolean | undefined;
331
+ enrollment?: boolean | undefined;
332
+ curriculum?: boolean | undefined;
333
+ scheduling?: boolean | undefined;
334
+ specialPrograms?: boolean | undefined;
335
+ parentPortal?: boolean | undefined;
336
+ studentPortal?: boolean | undefined;
337
+ }>>;
338
+ }, "strip", z.ZodTypeAny, {
339
+ timezone?: string | undefined;
340
+ locale?: string | undefined;
341
+ academicCalendarType?: "semester" | "quarter" | "trimester" | undefined;
342
+ dateFormat?: string | undefined;
343
+ timeFormat?: "12h" | "24h" | undefined;
344
+ features?: {
345
+ attendance?: boolean | undefined;
346
+ grades?: boolean | undefined;
347
+ enrollment?: boolean | undefined;
348
+ curriculum?: boolean | undefined;
349
+ scheduling?: boolean | undefined;
350
+ specialPrograms?: boolean | undefined;
351
+ parentPortal?: boolean | undefined;
352
+ studentPortal?: boolean | undefined;
353
+ } | undefined;
354
+ gradingScale?: {
355
+ type: "custom" | "letter" | "percentage" | "points";
356
+ passingGrade: number;
357
+ scale: {
358
+ letter: string;
359
+ minScore: number;
360
+ maxScore: number;
361
+ gpa?: number | undefined;
362
+ }[];
363
+ } | undefined;
364
+ attendanceRequired?: boolean | undefined;
365
+ schoolDays?: number[] | undefined;
366
+ startTime?: string | undefined;
367
+ endTime?: string | undefined;
368
+ periodDuration?: number | undefined;
369
+ notificationsEnabled?: boolean | undefined;
370
+ emailNotifications?: boolean | undefined;
371
+ smsNotifications?: boolean | undefined;
372
+ }, {
373
+ timezone?: string | undefined;
374
+ locale?: string | undefined;
375
+ academicCalendarType?: "semester" | "quarter" | "trimester" | undefined;
376
+ dateFormat?: string | undefined;
377
+ timeFormat?: "12h" | "24h" | undefined;
378
+ features?: {
379
+ attendance?: boolean | undefined;
380
+ grades?: boolean | undefined;
381
+ enrollment?: boolean | undefined;
382
+ curriculum?: boolean | undefined;
383
+ scheduling?: boolean | undefined;
384
+ specialPrograms?: boolean | undefined;
385
+ parentPortal?: boolean | undefined;
386
+ studentPortal?: boolean | undefined;
387
+ } | undefined;
388
+ gradingScale?: {
389
+ type: "custom" | "letter" | "percentage" | "points";
390
+ passingGrade: number;
391
+ scale: {
392
+ letter: string;
393
+ minScore: number;
394
+ maxScore: number;
395
+ gpa?: number | undefined;
396
+ }[];
397
+ } | undefined;
398
+ attendanceRequired?: boolean | undefined;
399
+ schoolDays?: number[] | undefined;
400
+ startTime?: string | undefined;
401
+ endTime?: string | undefined;
402
+ periodDuration?: number | undefined;
403
+ notificationsEnabled?: boolean | undefined;
404
+ emailNotifications?: boolean | undefined;
405
+ smsNotifications?: boolean | undefined;
406
+ }>;
407
+ export type UpdateSchoolConfigDto = z.infer<typeof updateSchoolConfigSchema>;
408
+ export declare const schoolConfigResponseSchema: z.ZodObject<{
409
+ schoolId: z.ZodString;
410
+ timezone: z.ZodString;
411
+ locale: z.ZodString;
412
+ dateFormat: z.ZodString;
413
+ timeFormat: z.ZodEnum<["12h", "24h"]>;
414
+ academicCalendarType: z.ZodEnum<["semester", "quarter", "trimester"]>;
415
+ gradingScale: z.ZodObject<{
416
+ type: z.ZodEnum<["letter", "percentage", "points", "custom"]>;
417
+ passingGrade: z.ZodNumber;
418
+ scale: z.ZodArray<z.ZodObject<{
419
+ letter: z.ZodString;
420
+ minScore: z.ZodNumber;
421
+ maxScore: z.ZodNumber;
422
+ gpa: z.ZodOptional<z.ZodNumber>;
423
+ }, "strip", z.ZodTypeAny, {
424
+ letter: string;
425
+ minScore: number;
426
+ maxScore: number;
427
+ gpa?: number | undefined;
428
+ }, {
429
+ letter: string;
430
+ minScore: number;
431
+ maxScore: number;
432
+ gpa?: number | undefined;
433
+ }>, "many">;
434
+ }, "strip", z.ZodTypeAny, {
435
+ type: "custom" | "letter" | "percentage" | "points";
436
+ passingGrade: number;
437
+ scale: {
438
+ letter: string;
439
+ minScore: number;
440
+ maxScore: number;
441
+ gpa?: number | undefined;
442
+ }[];
443
+ }, {
444
+ type: "custom" | "letter" | "percentage" | "points";
445
+ passingGrade: number;
446
+ scale: {
447
+ letter: string;
448
+ minScore: number;
449
+ maxScore: number;
450
+ gpa?: number | undefined;
451
+ }[];
452
+ }>;
453
+ attendanceRequired: z.ZodBoolean;
454
+ schoolDays: z.ZodArray<z.ZodNumber, "many">;
455
+ startTime: z.ZodString;
456
+ endTime: z.ZodString;
457
+ periodDuration: z.ZodNumber;
458
+ notificationsEnabled: z.ZodBoolean;
459
+ emailNotifications: z.ZodBoolean;
460
+ smsNotifications: z.ZodBoolean;
461
+ features: z.ZodObject<{
462
+ attendance: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
463
+ grades: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
464
+ enrollment: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
465
+ curriculum: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
466
+ scheduling: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
467
+ specialPrograms: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
468
+ parentPortal: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
469
+ studentPortal: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
470
+ }, "strip", z.ZodTypeAny, {
471
+ attendance?: boolean | undefined;
472
+ grades?: boolean | undefined;
473
+ enrollment?: boolean | undefined;
474
+ curriculum?: boolean | undefined;
475
+ scheduling?: boolean | undefined;
476
+ specialPrograms?: boolean | undefined;
477
+ parentPortal?: boolean | undefined;
478
+ studentPortal?: boolean | undefined;
479
+ }, {
480
+ attendance?: boolean | undefined;
481
+ grades?: boolean | undefined;
482
+ enrollment?: boolean | undefined;
483
+ curriculum?: boolean | undefined;
484
+ scheduling?: boolean | undefined;
485
+ specialPrograms?: boolean | undefined;
486
+ parentPortal?: boolean | undefined;
487
+ studentPortal?: boolean | undefined;
488
+ }>;
489
+ createdAt: z.ZodString;
490
+ updatedAt: z.ZodString;
491
+ }, "strip", z.ZodTypeAny, {
492
+ createdAt: string;
493
+ updatedAt: string;
494
+ timezone: string;
495
+ locale: string;
496
+ academicCalendarType: "semester" | "quarter" | "trimester";
497
+ schoolId: string;
498
+ dateFormat: string;
499
+ timeFormat: "12h" | "24h";
500
+ features: {
501
+ attendance?: boolean | undefined;
502
+ grades?: boolean | undefined;
503
+ enrollment?: boolean | undefined;
504
+ curriculum?: boolean | undefined;
505
+ scheduling?: boolean | undefined;
506
+ specialPrograms?: boolean | undefined;
507
+ parentPortal?: boolean | undefined;
508
+ studentPortal?: boolean | undefined;
509
+ };
510
+ gradingScale: {
511
+ type: "custom" | "letter" | "percentage" | "points";
512
+ passingGrade: number;
513
+ scale: {
514
+ letter: string;
515
+ minScore: number;
516
+ maxScore: number;
517
+ gpa?: number | undefined;
518
+ }[];
519
+ };
520
+ attendanceRequired: boolean;
521
+ schoolDays: number[];
522
+ startTime: string;
523
+ endTime: string;
524
+ periodDuration: number;
525
+ notificationsEnabled: boolean;
526
+ emailNotifications: boolean;
527
+ smsNotifications: boolean;
528
+ }, {
529
+ createdAt: string;
530
+ updatedAt: string;
531
+ timezone: string;
532
+ locale: string;
533
+ academicCalendarType: "semester" | "quarter" | "trimester";
534
+ schoolId: string;
535
+ dateFormat: string;
536
+ timeFormat: "12h" | "24h";
537
+ features: {
538
+ attendance?: boolean | undefined;
539
+ grades?: boolean | undefined;
540
+ enrollment?: boolean | undefined;
541
+ curriculum?: boolean | undefined;
542
+ scheduling?: boolean | undefined;
543
+ specialPrograms?: boolean | undefined;
544
+ parentPortal?: boolean | undefined;
545
+ studentPortal?: boolean | undefined;
546
+ };
547
+ gradingScale: {
548
+ type: "custom" | "letter" | "percentage" | "points";
549
+ passingGrade: number;
550
+ scale: {
551
+ letter: string;
552
+ minScore: number;
553
+ maxScore: number;
554
+ gpa?: number | undefined;
555
+ }[];
556
+ };
557
+ attendanceRequired: boolean;
558
+ schoolDays: number[];
559
+ startTime: string;
560
+ endTime: string;
561
+ periodDuration: number;
562
+ notificationsEnabled: boolean;
563
+ emailNotifications: boolean;
564
+ smsNotifications: boolean;
565
+ }>;
566
+ export type SchoolConfigResponseDto = z.infer<typeof schoolConfigResponseSchema>;
567
+ //# sourceMappingURL=department.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"department.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/identity/department.schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;EAKjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEzE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;EAKjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAanC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE7E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA0D,CAAC;AACpG,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAMrF,eAAO,MAAM,4BAA4B,yDAAuD,CAAC;AACjG,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;EAKjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAInC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE7E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS/B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIrE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBnC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE7E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBrC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ /**
3
+ * Department and School Configuration Schemas - Identity Service
4
+ *
5
+ * Zod schemas for department and school configuration DTOs.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.schoolConfigResponseSchema = exports.updateSchoolConfigSchema = exports.schoolFeaturesSchema = exports.schoolGradingScaleSchema = exports.gradeLevelConfigSchema = exports.schoolGradingScaleTypeSchema = exports.departmentListResponseSchema = exports.departmentResponseSchema = exports.updateDepartmentSchema = exports.createDepartmentSchema = void 0;
9
+ const zod_1 = require("zod");
10
+ const common_1 = require("../common");
11
+ const school_schema_1 = require("./school.schema");
12
+ const user_schema_1 = require("./user.schema");
13
+ // ============================================
14
+ // Department Schemas
15
+ // ============================================
16
+ exports.createDepartmentSchema = zod_1.z.object({
17
+ code: zod_1.z.string().min(2).max(10),
18
+ name: zod_1.z.string().min(2).max(100),
19
+ description: zod_1.z.string().max(500).optional(),
20
+ headUserId: zod_1.z.string().optional(),
21
+ });
22
+ exports.updateDepartmentSchema = zod_1.z.object({
23
+ name: zod_1.z.string().min(2).max(100).optional(),
24
+ description: zod_1.z.string().max(500).optional(),
25
+ headUserId: zod_1.z.string().optional(),
26
+ isActive: zod_1.z.boolean().optional(),
27
+ });
28
+ exports.departmentResponseSchema = zod_1.z.object({
29
+ departmentId: zod_1.z.string(),
30
+ schoolId: zod_1.z.string(),
31
+ code: zod_1.z.string(),
32
+ name: zod_1.z.string(),
33
+ description: zod_1.z.string().optional(),
34
+ headUserId: zod_1.z.string().optional(),
35
+ headName: zod_1.z.string().optional(),
36
+ isActive: zod_1.z.boolean(),
37
+ teacherCount: zod_1.z.number().int().min(0).optional(),
38
+ courseCount: zod_1.z.number().int().min(0).optional(),
39
+ createdAt: common_1.isoDateSchema,
40
+ updatedAt: common_1.isoDateSchema,
41
+ });
42
+ exports.departmentListResponseSchema = (0, common_1.createPaginatedResponseSchema)(exports.departmentResponseSchema);
43
+ // ============================================
44
+ // School Configuration Schemas
45
+ // ============================================
46
+ exports.schoolGradingScaleTypeSchema = zod_1.z.enum(['letter', 'percentage', 'points', 'custom']);
47
+ /**
48
+ * Grade level configuration for school grading scale
49
+ * (e.g., A = 90-100, B = 80-89, etc.)
50
+ */
51
+ exports.gradeLevelConfigSchema = zod_1.z.object({
52
+ letter: zod_1.z.string().min(1),
53
+ minScore: zod_1.z.number().int().min(0).max(100),
54
+ maxScore: zod_1.z.number().int().min(0).max(100),
55
+ gpa: zod_1.z.number().min(0).max(5).optional(),
56
+ });
57
+ /**
58
+ * School-level grading scale configuration
59
+ */
60
+ exports.schoolGradingScaleSchema = zod_1.z.object({
61
+ type: exports.schoolGradingScaleTypeSchema,
62
+ passingGrade: zod_1.z.number().int().min(0).max(100),
63
+ scale: zod_1.z.array(exports.gradeLevelConfigSchema),
64
+ });
65
+ exports.schoolFeaturesSchema = zod_1.z.object({
66
+ attendance: zod_1.z.boolean().default(true).optional(),
67
+ grades: zod_1.z.boolean().default(true).optional(),
68
+ enrollment: zod_1.z.boolean().default(true).optional(),
69
+ curriculum: zod_1.z.boolean().default(true).optional(),
70
+ scheduling: zod_1.z.boolean().default(true).optional(),
71
+ specialPrograms: zod_1.z.boolean().default(true).optional(),
72
+ parentPortal: zod_1.z.boolean().default(true).optional(),
73
+ studentPortal: zod_1.z.boolean().default(true).optional(),
74
+ });
75
+ const timeRegex = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/;
76
+ exports.updateSchoolConfigSchema = zod_1.z.object({
77
+ timezone: zod_1.z.string().optional(),
78
+ locale: zod_1.z.string().optional(),
79
+ dateFormat: zod_1.z.string().optional(),
80
+ timeFormat: user_schema_1.timeFormatSchema.optional(),
81
+ academicCalendarType: school_schema_1.academicCalendarTypeSchema.optional(),
82
+ gradingScale: exports.schoolGradingScaleSchema.optional(),
83
+ attendanceRequired: zod_1.z.boolean().optional(),
84
+ schoolDays: zod_1.z.array(zod_1.z.number().int().min(0).max(6)).optional(),
85
+ startTime: zod_1.z.string().regex(timeRegex, 'Must be HH:MM format').optional(),
86
+ endTime: zod_1.z.string().regex(timeRegex, 'Must be HH:MM format').optional(),
87
+ periodDuration: zod_1.z.number().int().min(15).max(120).optional(),
88
+ notificationsEnabled: zod_1.z.boolean().optional(),
89
+ emailNotifications: zod_1.z.boolean().optional(),
90
+ smsNotifications: zod_1.z.boolean().optional(),
91
+ features: exports.schoolFeaturesSchema.optional(),
92
+ });
93
+ exports.schoolConfigResponseSchema = zod_1.z.object({
94
+ schoolId: zod_1.z.string(),
95
+ timezone: zod_1.z.string(),
96
+ locale: zod_1.z.string(),
97
+ dateFormat: zod_1.z.string(),
98
+ timeFormat: user_schema_1.timeFormatSchema,
99
+ academicCalendarType: school_schema_1.academicCalendarTypeSchema,
100
+ gradingScale: exports.schoolGradingScaleSchema,
101
+ attendanceRequired: zod_1.z.boolean(),
102
+ schoolDays: zod_1.z.array(zod_1.z.number().int()),
103
+ startTime: zod_1.z.string(),
104
+ endTime: zod_1.z.string(),
105
+ periodDuration: zod_1.z.number().int(),
106
+ notificationsEnabled: zod_1.z.boolean(),
107
+ emailNotifications: zod_1.z.boolean(),
108
+ smsNotifications: zod_1.z.boolean(),
109
+ features: exports.schoolFeaturesSchema,
110
+ createdAt: common_1.isoDateSchema,
111
+ updatedAt: common_1.isoDateSchema,
112
+ });
113
+ //# sourceMappingURL=department.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"department.schema.js","sourceRoot":"","sources":["../../../src/schemas/identity/department.schema.ts"],"names":[],"mappings":"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"}