@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 @@
1
+ {"version":3,"file":"course.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/academics/course.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,oLAYlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,gBAAgB,sHAU3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,gBAAgB,8EAO3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,oBAAoB,yDAK/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMlE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMrE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS/B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMrE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkD7B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAMjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAMjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqD/B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMrE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsD,CAAC;AAC5F,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAM7E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ /**
3
+ * Course Schemas - Academics Service
4
+ *
5
+ * Zod schemas for course catalog management DTOs.
6
+ * Aligned with Ed-Fi CourseOffering and Course data models.
7
+ *
8
+ * Ed-Fi References:
9
+ * - Course: Represents a course catalog entry
10
+ * - CourseOffering: A specific offering of a course during an academic session
11
+ * - CourseCode: Unique identifier for the course
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.courseFilterSchema = exports.courseListResponseSchema = exports.courseResponseSchema = exports.updateCourseSchema = exports.createCourseSchema = exports.courseMaterialSchema = exports.courseStandardSchema = exports.courseDurationSchema = exports.creditTypeSchema = exports.courseTypeSchema = exports.courseSubjectAreaSchema = void 0;
15
+ const zod_1 = require("zod");
16
+ const common_1 = require("../common");
17
+ // ============================================
18
+ // Enums (aligned with Ed-Fi AcademicSubjectDescriptor)
19
+ // ============================================
20
+ /**
21
+ * Course subject area - aligned with Ed-Fi AcademicSubjectDescriptor.
22
+ * Named `courseSubjectAreaSchema` to avoid collision with
23
+ * `courseSubjectAreaSchema` in classroom.schema.ts (which uses different values).
24
+ * This is the Ed-Fi canonical set.
25
+ * @see https://api.ed-fi.org/v7.1/docs/swagger/index.html
26
+ */
27
+ exports.courseSubjectAreaSchema = zod_1.z.enum([
28
+ 'mathematics',
29
+ 'english_language_arts',
30
+ 'science',
31
+ 'social_studies',
32
+ 'world_languages',
33
+ 'arts',
34
+ 'physical_education',
35
+ 'technology',
36
+ 'business',
37
+ 'vocational',
38
+ 'other',
39
+ ]);
40
+ /**
41
+ * Course type classification - aligned with Ed-Fi CourseLevelCharacteristicDescriptor
42
+ */
43
+ exports.courseTypeSchema = zod_1.z.enum([
44
+ 'required',
45
+ 'elective',
46
+ 'enrichment',
47
+ 'remedial',
48
+ 'honors',
49
+ 'ap',
50
+ 'ib',
51
+ 'dual_enrollment',
52
+ 'vocational',
53
+ ]);
54
+ /**
55
+ * Credit type - aligned with Ed-Fi CourseLevelCharacteristicDescriptor
56
+ */
57
+ exports.creditTypeSchema = zod_1.z.enum([
58
+ 'academic',
59
+ 'elective',
60
+ 'honors',
61
+ 'ap',
62
+ 'ib',
63
+ 'dual_enrollment',
64
+ ]);
65
+ /**
66
+ * Course duration type - aligned with Ed-Fi AcademicTermDescriptor
67
+ */
68
+ exports.courseDurationSchema = zod_1.z.enum([
69
+ 'semester',
70
+ 'year',
71
+ 'quarter',
72
+ 'trimester',
73
+ ]);
74
+ // ============================================
75
+ // Course Standard Schema (Ed-Fi LearningStandard alignment)
76
+ // ============================================
77
+ exports.courseStandardSchema = zod_1.z.object({
78
+ standardId: zod_1.z.string().min(1).max(50),
79
+ standardCode: zod_1.z.string().min(1).max(60),
80
+ standardName: zod_1.z.string().min(1).max(255),
81
+ framework: zod_1.z.string().min(1).max(100), // e.g., 'Common Core', 'NGSS', 'State Standard'
82
+ });
83
+ // ============================================
84
+ // Course Material Schema
85
+ // ============================================
86
+ exports.courseMaterialSchema = zod_1.z.object({
87
+ materialId: zod_1.z.string().uuid().optional(),
88
+ type: zod_1.z.enum(['textbook', 'workbook', 'digital', 'other']),
89
+ title: zod_1.z.string().min(1).max(255),
90
+ author: zod_1.z.string().max(255).optional(),
91
+ publisher: zod_1.z.string().max(255).optional(),
92
+ isbn: zod_1.z.string().max(17).optional(), // ISBN-13 max length
93
+ edition: zod_1.z.string().max(50).optional(),
94
+ isRequired: zod_1.z.boolean().default(true),
95
+ });
96
+ // ============================================
97
+ // Create Course Schema
98
+ // ============================================
99
+ exports.createCourseSchema = zod_1.z.object({
100
+ // Identity (Ed-Fi: CourseCode, CourseTitle)
101
+ courseCode: zod_1.z.string()
102
+ .min(2, 'Course code must be at least 2 characters')
103
+ .max(20, 'Course code must not exceed 20 characters')
104
+ .regex(/^[A-Z0-9_-]+$/i, 'Course code must contain only letters, numbers, hyphens, and underscores'),
105
+ courseName: zod_1.z.string()
106
+ .min(2, 'Course name must be at least 2 characters')
107
+ .max(200, 'Course name must not exceed 200 characters'),
108
+ // School reference (Ed-Fi: EducationOrganizationReference)
109
+ schoolId: zod_1.z.string().uuid(),
110
+ // Department (Ed-Fi: not directly mapped, extension)
111
+ departmentId: zod_1.z.string().uuid().optional(),
112
+ departmentName: zod_1.z.string().max(100).optional(),
113
+ // Description (Ed-Fi: CourseDescription)
114
+ description: zod_1.z.string().max(2000).optional(),
115
+ objectives: zod_1.z.array(zod_1.z.string().max(500)).max(20).optional(),
116
+ // Grade levels (Ed-Fi: GradeLevelDescriptor)
117
+ gradeLevels: zod_1.z.array(zod_1.z.string().min(1).max(10)).min(1).max(15),
118
+ // Credits (Ed-Fi: MaximumAvailableCredits, CourseDefinedByDescriptor)
119
+ credits: zod_1.z.number().min(0).max(12),
120
+ creditType: exports.creditTypeSchema.optional(),
121
+ // Subject area (Ed-Fi: AcademicSubjectDescriptor)
122
+ subjectArea: exports.courseSubjectAreaSchema,
123
+ // Course type
124
+ courseType: exports.courseTypeSchema,
125
+ // Prerequisites (Ed-Fi: not directly mapped, common extension)
126
+ prerequisites: zod_1.z.array(zod_1.z.string().uuid()).max(10).optional(),
127
+ corequisites: zod_1.z.array(zod_1.z.string().uuid()).max(5).optional(),
128
+ // Scheduling
129
+ typicalDuration: exports.courseDurationSchema,
130
+ periodsPerWeek: zod_1.z.number().int().min(1).max(20).optional(),
131
+ // Year-specific
132
+ academicYearId: zod_1.z.string().uuid().optional(),
133
+ // Standards alignment (Ed-Fi: LearningStandard)
134
+ standards: zod_1.z.array(exports.courseStandardSchema).max(50).optional(),
135
+ // Materials
136
+ textbooks: zod_1.z.array(exports.courseMaterialSchema).max(20).optional(),
137
+ });
138
+ // ============================================
139
+ // Update Course Schema
140
+ // ============================================
141
+ exports.updateCourseSchema = exports.createCourseSchema.partial().omit({
142
+ schoolId: true,
143
+ courseCode: true, // courseCode is immutable after creation
144
+ });
145
+ // ============================================
146
+ // Course Response Schema
147
+ // ============================================
148
+ exports.courseResponseSchema = zod_1.z.object({
149
+ courseId: zod_1.z.string().uuid(),
150
+ schoolId: zod_1.z.string().uuid(),
151
+ tenantId: zod_1.z.string(),
152
+ // Identity
153
+ courseCode: zod_1.z.string(),
154
+ courseName: zod_1.z.string(),
155
+ // Department
156
+ departmentId: zod_1.z.string().uuid().optional(),
157
+ departmentName: zod_1.z.string().optional(),
158
+ // Description
159
+ description: zod_1.z.string().optional(),
160
+ objectives: zod_1.z.array(zod_1.z.string()).optional(),
161
+ // Grade levels
162
+ gradeLevels: zod_1.z.array(zod_1.z.string()),
163
+ // Credits
164
+ credits: zod_1.z.number(),
165
+ creditType: exports.creditTypeSchema.optional(),
166
+ // Subject area
167
+ subjectArea: exports.courseSubjectAreaSchema,
168
+ // Course type
169
+ courseType: exports.courseTypeSchema,
170
+ // Prerequisites
171
+ prerequisites: zod_1.z.array(zod_1.z.string().uuid()).optional(),
172
+ corequisites: zod_1.z.array(zod_1.z.string().uuid()).optional(),
173
+ // Scheduling
174
+ typicalDuration: exports.courseDurationSchema,
175
+ periodsPerWeek: zod_1.z.number().int().optional(),
176
+ // Status
177
+ isActive: zod_1.z.boolean(),
178
+ academicYearId: zod_1.z.string().uuid().optional(),
179
+ // Standards
180
+ standards: zod_1.z.array(exports.courseStandardSchema).optional(),
181
+ // Materials
182
+ textbooks: zod_1.z.array(exports.courseMaterialSchema).optional(),
183
+ // Metadata
184
+ createdAt: common_1.isoDateSchema,
185
+ updatedAt: common_1.isoDateSchema,
186
+ createdBy: zod_1.z.string().optional(),
187
+ updatedBy: zod_1.z.string().optional(),
188
+ });
189
+ // ============================================
190
+ // Course List Response Schema
191
+ // ============================================
192
+ exports.courseListResponseSchema = (0, common_1.createPaginatedResponseSchema)(exports.courseResponseSchema);
193
+ // ============================================
194
+ // Course Filter Schema
195
+ // ============================================
196
+ exports.courseFilterSchema = zod_1.z.object({
197
+ schoolId: zod_1.z.string().uuid().optional(),
198
+ departmentId: zod_1.z.string().uuid().optional(),
199
+ subjectArea: exports.courseSubjectAreaSchema.optional(),
200
+ courseType: exports.courseTypeSchema.optional(),
201
+ creditType: exports.creditTypeSchema.optional(),
202
+ gradeLevel: zod_1.z.string().max(10).optional(),
203
+ isActive: zod_1.z.boolean().optional(),
204
+ academicYearId: zod_1.z.string().uuid().optional(),
205
+ searchTerm: zod_1.z.string().max(100).optional(),
206
+ });
207
+ //# sourceMappingURL=course.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"course.schema.js","sourceRoot":"","sources":["../../../src/schemas/academics/course.schema.ts"],"names":[],"mappings":"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"}