@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,124 @@
1
+ "use strict";
2
+ /**
3
+ * Role Assignment Schemas - Identity Service (ABAC)
4
+ *
5
+ * Zod schemas for role-based access control DTOs.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.deactivateRoleSchema = exports.changeSchoolRoleSchema = exports.changeGlobalRoleResponseSchema = exports.changeGlobalRoleSchema = exports.checkPermissionResponseSchema = exports.checkPermissionSchema = exports.userRolesResponseSchema = exports.roleAssignmentResponseSchema = exports.updateRoleSchema = exports.assignRoleSchema = exports.permissionOverrideSchema = exports.abacSchoolRoleSchema = exports.permissionEffectSchema = exports.permissionActionSchema = void 0;
9
+ const zod_1 = require("zod");
10
+ const common_1 = require("../common");
11
+ const user_schema_1 = require("./user.schema");
12
+ // ============================================
13
+ // Enums
14
+ // ============================================
15
+ exports.permissionActionSchema = zod_1.z.enum([
16
+ 'view',
17
+ 'create',
18
+ 'edit',
19
+ 'delete',
20
+ 'manage',
21
+ 'approve',
22
+ 'send',
23
+ 'export',
24
+ ]);
25
+ exports.permissionEffectSchema = zod_1.z.enum(['allow', 'deny']);
26
+ exports.abacSchoolRoleSchema = zod_1.z.enum([
27
+ 'Principal',
28
+ 'VicePrincipal',
29
+ 'Teacher',
30
+ 'Accountant',
31
+ 'Staff',
32
+ 'Counselor',
33
+ 'Nurse',
34
+ 'Student',
35
+ 'Parent',
36
+ ]);
37
+ // ============================================
38
+ // Permission Override Schema
39
+ // ============================================
40
+ exports.permissionOverrideSchema = zod_1.z.object({
41
+ resource: zod_1.z.string().min(1),
42
+ action: exports.permissionActionSchema,
43
+ effect: exports.permissionEffectSchema,
44
+ });
45
+ // ============================================
46
+ // Assign Role Schema
47
+ // ============================================
48
+ exports.assignRoleSchema = zod_1.z.object({
49
+ schoolId: zod_1.z.string().min(1),
50
+ role: exports.abacSchoolRoleSchema,
51
+ departmentId: zod_1.z.string().optional(),
52
+ permissionOverrides: zod_1.z.array(exports.permissionOverrideSchema).optional(),
53
+ expiresAt: common_1.isoDateSchema.optional(),
54
+ });
55
+ // ============================================
56
+ // Update Role Schema
57
+ // ============================================
58
+ exports.updateRoleSchema = zod_1.z.object({
59
+ role: exports.abacSchoolRoleSchema.optional(),
60
+ departmentId: zod_1.z.string().optional(),
61
+ permissionOverrides: zod_1.z.array(exports.permissionOverrideSchema).optional(),
62
+ isActive: zod_1.z.boolean().optional(),
63
+ expiresAt: common_1.isoDateSchema.optional(),
64
+ });
65
+ // ============================================
66
+ // Role Assignment Response Schema
67
+ // ============================================
68
+ exports.roleAssignmentResponseSchema = zod_1.z.object({
69
+ userId: zod_1.z.string(),
70
+ schoolId: zod_1.z.string(),
71
+ schoolName: zod_1.z.string().optional(),
72
+ role: exports.abacSchoolRoleSchema,
73
+ departmentId: zod_1.z.string().optional(),
74
+ permissionOverrides: zod_1.z.array(exports.permissionOverrideSchema).optional(),
75
+ isActive: zod_1.z.boolean(),
76
+ assignedAt: common_1.isoDateSchema,
77
+ assignedBy: zod_1.z.string(),
78
+ expiresAt: common_1.isoDateSchema.optional(),
79
+ });
80
+ // ============================================
81
+ // User Roles Response Schema
82
+ // ============================================
83
+ exports.userRolesResponseSchema = zod_1.z.object({
84
+ userId: zod_1.z.string(),
85
+ globalRole: zod_1.z.string(),
86
+ schoolRoles: zod_1.z.array(exports.roleAssignmentResponseSchema),
87
+ });
88
+ // ============================================
89
+ // Permission Check Schemas
90
+ // ============================================
91
+ exports.checkPermissionSchema = zod_1.z.object({
92
+ resource: zod_1.z.string().min(1),
93
+ action: exports.permissionActionSchema,
94
+ schoolId: zod_1.z.string().optional(),
95
+ });
96
+ exports.checkPermissionResponseSchema = zod_1.z.object({
97
+ allowed: zod_1.z.boolean(),
98
+ reason: zod_1.z.string().optional(),
99
+ });
100
+ exports.changeGlobalRoleSchema = zod_1.z.object({
101
+ globalRole: user_schema_1.globalRoleSchema,
102
+ });
103
+ exports.changeGlobalRoleResponseSchema = zod_1.z.object({
104
+ userId: zod_1.z.string(),
105
+ previousRole: user_schema_1.globalRoleSchema,
106
+ newRole: user_schema_1.globalRoleSchema,
107
+ sessionsRevoked: zod_1.z.number(),
108
+ });
109
+ // ============================================
110
+ // Change School Role Schema
111
+ // ============================================
112
+ exports.changeSchoolRoleSchema = zod_1.z.object({
113
+ newRole: exports.abacSchoolRoleSchema,
114
+ departmentId: zod_1.z.string().optional(),
115
+ permissionOverrides: zod_1.z.array(exports.permissionOverrideSchema).optional(),
116
+ expiresAt: common_1.isoDateSchema.optional(),
117
+ });
118
+ // ============================================
119
+ // Deactivate Role Schema
120
+ // ============================================
121
+ exports.deactivateRoleSchema = zod_1.z.object({
122
+ reason: zod_1.z.string().min(1),
123
+ });
124
+ //# sourceMappingURL=role.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.schema.js","sourceRoot":"","sources":["../../../src/schemas/identity/role.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,303 @@
1
+ /**
2
+ * School Year Schemas - Identity Service
3
+ *
4
+ * Zod schemas for tenant-wide school year aggregation.
5
+ * Extends AcademicYearResponseDto with school context for cross-school views.
6
+ *
7
+ * Used by: Frontend Shell context for initial data loading
8
+ */
9
+ import { z } from 'zod';
10
+ /**
11
+ * School Year Response - Extends AcademicYear with school name
12
+ *
13
+ * This schema represents a school year in the context of tenant-wide aggregation,
14
+ * including the school name for display purposes.
15
+ */
16
+ export declare const schoolYearResponseSchema: z.ZodObject<z.objectUtil.extendShape<{
17
+ yearId: z.ZodString;
18
+ schoolId: z.ZodString;
19
+ name: z.ZodString;
20
+ shortName: z.ZodOptional<z.ZodString>;
21
+ startDate: z.ZodString;
22
+ endDate: z.ZodString;
23
+ status: z.ZodEnum<["planning", "active", "completed", "archived"]>;
24
+ isCurrent: z.ZodBoolean;
25
+ calendarType: z.ZodEnum<["semester", "quarter", "trimester"]>;
26
+ createdAt: z.ZodString;
27
+ updatedAt: z.ZodString;
28
+ }, {
29
+ /** School name for display in aggregated views */
30
+ schoolName: z.ZodString;
31
+ }>, "strip", z.ZodTypeAny, {
32
+ status: "active" | "archived" | "planning" | "completed";
33
+ createdAt: string;
34
+ updatedAt: string;
35
+ startDate: string;
36
+ endDate: string;
37
+ name: string;
38
+ schoolId: string;
39
+ calendarType: "semester" | "quarter" | "trimester";
40
+ yearId: string;
41
+ isCurrent: boolean;
42
+ schoolName: string;
43
+ shortName?: string | undefined;
44
+ }, {
45
+ status: "active" | "archived" | "planning" | "completed";
46
+ createdAt: string;
47
+ updatedAt: string;
48
+ startDate: string;
49
+ endDate: string;
50
+ name: string;
51
+ schoolId: string;
52
+ calendarType: "semester" | "quarter" | "trimester";
53
+ yearId: string;
54
+ isCurrent: boolean;
55
+ schoolName: string;
56
+ shortName?: string | undefined;
57
+ }>;
58
+ export type SchoolYearResponseDto = z.infer<typeof schoolYearResponseSchema>;
59
+ /**
60
+ * School Years List Response - Tenant-wide aggregation
61
+ *
62
+ * Returns all school years across all schools for a tenant,
63
+ * used by the frontend Shell context for initial data loading.
64
+ */
65
+ export declare const schoolYearListResponseSchema: z.ZodObject<{
66
+ items: z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
67
+ yearId: z.ZodString;
68
+ schoolId: z.ZodString;
69
+ name: z.ZodString;
70
+ shortName: z.ZodOptional<z.ZodString>;
71
+ startDate: z.ZodString;
72
+ endDate: z.ZodString;
73
+ status: z.ZodEnum<["planning", "active", "completed", "archived"]>;
74
+ isCurrent: z.ZodBoolean;
75
+ calendarType: z.ZodEnum<["semester", "quarter", "trimester"]>;
76
+ createdAt: z.ZodString;
77
+ updatedAt: z.ZodString;
78
+ }, {
79
+ /** School name for display in aggregated views */
80
+ schoolName: z.ZodString;
81
+ }>, "strip", z.ZodTypeAny, {
82
+ status: "active" | "archived" | "planning" | "completed";
83
+ createdAt: string;
84
+ updatedAt: string;
85
+ startDate: string;
86
+ endDate: string;
87
+ name: string;
88
+ schoolId: string;
89
+ calendarType: "semester" | "quarter" | "trimester";
90
+ yearId: string;
91
+ isCurrent: boolean;
92
+ schoolName: string;
93
+ shortName?: string | undefined;
94
+ }, {
95
+ status: "active" | "archived" | "planning" | "completed";
96
+ createdAt: string;
97
+ updatedAt: string;
98
+ startDate: string;
99
+ endDate: string;
100
+ name: string;
101
+ schoolId: string;
102
+ calendarType: "semester" | "quarter" | "trimester";
103
+ yearId: string;
104
+ isCurrent: boolean;
105
+ schoolName: string;
106
+ shortName?: string | undefined;
107
+ }>, "many">;
108
+ total: z.ZodNumber;
109
+ }, "strip", z.ZodTypeAny, {
110
+ items: {
111
+ status: "active" | "archived" | "planning" | "completed";
112
+ createdAt: string;
113
+ updatedAt: string;
114
+ startDate: string;
115
+ endDate: string;
116
+ name: string;
117
+ schoolId: string;
118
+ calendarType: "semester" | "quarter" | "trimester";
119
+ yearId: string;
120
+ isCurrent: boolean;
121
+ schoolName: string;
122
+ shortName?: string | undefined;
123
+ }[];
124
+ total: number;
125
+ }, {
126
+ items: {
127
+ status: "active" | "archived" | "planning" | "completed";
128
+ createdAt: string;
129
+ updatedAt: string;
130
+ startDate: string;
131
+ endDate: string;
132
+ name: string;
133
+ schoolId: string;
134
+ calendarType: "semester" | "quarter" | "trimester";
135
+ yearId: string;
136
+ isCurrent: boolean;
137
+ schoolName: string;
138
+ shortName?: string | undefined;
139
+ }[];
140
+ total: number;
141
+ }>;
142
+ export type SchoolYearListResponseDto = z.infer<typeof schoolYearListResponseSchema>;
143
+ /**
144
+ * Current School Year Response - Wrapper for single school year
145
+ *
146
+ * Used when returning the current school year for a tenant/school.
147
+ */
148
+ export declare const currentSchoolYearResponseSchema: z.ZodObject<{
149
+ data: z.ZodNullable<z.ZodObject<z.objectUtil.extendShape<{
150
+ yearId: z.ZodString;
151
+ schoolId: z.ZodString;
152
+ name: z.ZodString;
153
+ shortName: z.ZodOptional<z.ZodString>;
154
+ startDate: z.ZodString;
155
+ endDate: z.ZodString;
156
+ status: z.ZodEnum<["planning", "active", "completed", "archived"]>;
157
+ isCurrent: z.ZodBoolean;
158
+ calendarType: z.ZodEnum<["semester", "quarter", "trimester"]>;
159
+ createdAt: z.ZodString;
160
+ updatedAt: z.ZodString;
161
+ }, {
162
+ /** School name for display in aggregated views */
163
+ schoolName: z.ZodString;
164
+ }>, "strip", z.ZodTypeAny, {
165
+ status: "active" | "archived" | "planning" | "completed";
166
+ createdAt: string;
167
+ updatedAt: string;
168
+ startDate: string;
169
+ endDate: string;
170
+ name: string;
171
+ schoolId: string;
172
+ calendarType: "semester" | "quarter" | "trimester";
173
+ yearId: string;
174
+ isCurrent: boolean;
175
+ schoolName: string;
176
+ shortName?: string | undefined;
177
+ }, {
178
+ status: "active" | "archived" | "planning" | "completed";
179
+ createdAt: string;
180
+ updatedAt: string;
181
+ startDate: string;
182
+ endDate: string;
183
+ name: string;
184
+ schoolId: string;
185
+ calendarType: "semester" | "quarter" | "trimester";
186
+ yearId: string;
187
+ isCurrent: boolean;
188
+ schoolName: string;
189
+ shortName?: string | undefined;
190
+ }>>;
191
+ }, "strip", z.ZodTypeAny, {
192
+ data: {
193
+ status: "active" | "archived" | "planning" | "completed";
194
+ createdAt: string;
195
+ updatedAt: string;
196
+ startDate: string;
197
+ endDate: string;
198
+ name: string;
199
+ schoolId: string;
200
+ calendarType: "semester" | "quarter" | "trimester";
201
+ yearId: string;
202
+ isCurrent: boolean;
203
+ schoolName: string;
204
+ shortName?: string | undefined;
205
+ } | null;
206
+ }, {
207
+ data: {
208
+ status: "active" | "archived" | "planning" | "completed";
209
+ createdAt: string;
210
+ updatedAt: string;
211
+ startDate: string;
212
+ endDate: string;
213
+ name: string;
214
+ schoolId: string;
215
+ calendarType: "semester" | "quarter" | "trimester";
216
+ yearId: string;
217
+ isCurrent: boolean;
218
+ schoolName: string;
219
+ shortName?: string | undefined;
220
+ } | null;
221
+ }>;
222
+ export type CurrentSchoolYearResponseDto = z.infer<typeof currentSchoolYearResponseSchema>;
223
+ /**
224
+ * Current School Years Response - Multiple current years
225
+ *
226
+ * Returns current school years for all schools in a tenant.
227
+ */
228
+ export declare const currentSchoolYearsResponseSchema: z.ZodObject<{
229
+ data: z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
230
+ yearId: z.ZodString;
231
+ schoolId: z.ZodString;
232
+ name: z.ZodString;
233
+ shortName: z.ZodOptional<z.ZodString>;
234
+ startDate: z.ZodString;
235
+ endDate: z.ZodString;
236
+ status: z.ZodEnum<["planning", "active", "completed", "archived"]>;
237
+ isCurrent: z.ZodBoolean;
238
+ calendarType: z.ZodEnum<["semester", "quarter", "trimester"]>;
239
+ createdAt: z.ZodString;
240
+ updatedAt: z.ZodString;
241
+ }, {
242
+ /** School name for display in aggregated views */
243
+ schoolName: z.ZodString;
244
+ }>, "strip", z.ZodTypeAny, {
245
+ status: "active" | "archived" | "planning" | "completed";
246
+ createdAt: string;
247
+ updatedAt: string;
248
+ startDate: string;
249
+ endDate: string;
250
+ name: string;
251
+ schoolId: string;
252
+ calendarType: "semester" | "quarter" | "trimester";
253
+ yearId: string;
254
+ isCurrent: boolean;
255
+ schoolName: string;
256
+ shortName?: string | undefined;
257
+ }, {
258
+ status: "active" | "archived" | "planning" | "completed";
259
+ createdAt: string;
260
+ updatedAt: string;
261
+ startDate: string;
262
+ endDate: string;
263
+ name: string;
264
+ schoolId: string;
265
+ calendarType: "semester" | "quarter" | "trimester";
266
+ yearId: string;
267
+ isCurrent: boolean;
268
+ schoolName: string;
269
+ shortName?: string | undefined;
270
+ }>, "many">;
271
+ }, "strip", z.ZodTypeAny, {
272
+ data: {
273
+ status: "active" | "archived" | "planning" | "completed";
274
+ createdAt: string;
275
+ updatedAt: string;
276
+ startDate: string;
277
+ endDate: string;
278
+ name: string;
279
+ schoolId: string;
280
+ calendarType: "semester" | "quarter" | "trimester";
281
+ yearId: string;
282
+ isCurrent: boolean;
283
+ schoolName: string;
284
+ shortName?: string | undefined;
285
+ }[];
286
+ }, {
287
+ data: {
288
+ status: "active" | "archived" | "planning" | "completed";
289
+ createdAt: string;
290
+ updatedAt: string;
291
+ startDate: string;
292
+ endDate: string;
293
+ name: string;
294
+ schoolId: string;
295
+ calendarType: "semester" | "quarter" | "trimester";
296
+ yearId: string;
297
+ isCurrent: boolean;
298
+ schoolName: string;
299
+ shortName?: string | undefined;
300
+ }[];
301
+ }>;
302
+ export type CurrentSchoolYearsResponseDto = z.infer<typeof currentSchoolYearsResponseSchema>;
303
+ //# sourceMappingURL=school-year.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"school-year.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/identity/school-year.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;IACnC,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAElD,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAM7E;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;QAhBvC,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBlD,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAMrF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;QAhC1C,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkClD,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAE3F;;;;GAIG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;QA3C3C,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6ClD,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * School Year Schemas - Identity Service
4
+ *
5
+ * Zod schemas for tenant-wide school year aggregation.
6
+ * Extends AcademicYearResponseDto with school context for cross-school views.
7
+ *
8
+ * Used by: Frontend Shell context for initial data loading
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.currentSchoolYearsResponseSchema = exports.currentSchoolYearResponseSchema = exports.schoolYearListResponseSchema = exports.schoolYearResponseSchema = void 0;
12
+ const zod_1 = require("zod");
13
+ const academic_year_schema_1 = require("./academic-year.schema");
14
+ // ============================================
15
+ // School Year Response Schema (Aggregation View)
16
+ // ============================================
17
+ /**
18
+ * School Year Response - Extends AcademicYear with school name
19
+ *
20
+ * This schema represents a school year in the context of tenant-wide aggregation,
21
+ * including the school name for display purposes.
22
+ */
23
+ exports.schoolYearResponseSchema = academic_year_schema_1.academicYearResponseSchema.extend({
24
+ /** School name for display in aggregated views */
25
+ schoolName: zod_1.z.string(),
26
+ });
27
+ // ============================================
28
+ // School Year List Response Schema
29
+ // ============================================
30
+ /**
31
+ * School Years List Response - Tenant-wide aggregation
32
+ *
33
+ * Returns all school years across all schools for a tenant,
34
+ * used by the frontend Shell context for initial data loading.
35
+ */
36
+ exports.schoolYearListResponseSchema = zod_1.z.object({
37
+ items: zod_1.z.array(exports.schoolYearResponseSchema),
38
+ total: zod_1.z.number().int().min(0),
39
+ });
40
+ // ============================================
41
+ // Current School Year Response Schema
42
+ // ============================================
43
+ /**
44
+ * Current School Year Response - Wrapper for single school year
45
+ *
46
+ * Used when returning the current school year for a tenant/school.
47
+ */
48
+ exports.currentSchoolYearResponseSchema = zod_1.z.object({
49
+ data: exports.schoolYearResponseSchema.nullable(),
50
+ });
51
+ /**
52
+ * Current School Years Response - Multiple current years
53
+ *
54
+ * Returns current school years for all schools in a tenant.
55
+ */
56
+ exports.currentSchoolYearsResponseSchema = zod_1.z.object({
57
+ data: zod_1.z.array(exports.schoolYearResponseSchema),
58
+ });
59
+ //# sourceMappingURL=school-year.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"school-year.schema.js","sourceRoot":"","sources":["../../../src/schemas/identity/school-year.schema.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,6BAAwB;AACxB,iEAAoE;AAEpE,+CAA+C;AAC/C,iDAAiD;AACjD,+CAA+C;AAE/C;;;;;GAKG;AACU,QAAA,wBAAwB,GAAG,iDAA0B,CAAC,MAAM,CAAC;IACxE,kDAAkD;IAClD,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAIH,+CAA+C;AAC/C,mCAAmC;AACnC,+CAA+C;AAE/C;;;;;GAKG;AACU,QAAA,4BAA4B,GAAG,OAAC,CAAC,MAAM,CAAC;IACnD,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,gCAAwB,CAAC;IACxC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC/B,CAAC,CAAC;AAIH,+CAA+C;AAC/C,sCAAsC;AACtC,+CAA+C;AAE/C;;;;GAIG;AACU,QAAA,+BAA+B,GAAG,OAAC,CAAC,MAAM,CAAC;IACtD,IAAI,EAAE,gCAAwB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAIH;;;;GAIG;AACU,QAAA,gCAAgC,GAAG,OAAC,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,gCAAwB,CAAC;CACxC,CAAC,CAAC"}