repositories/course_repository
library
Classes
-
CourseRepository
-
Provides course schedules, catalog, materials, and student rosters.
Constants
-
courseMaterialsTtl
→ const Duration
-
-
emptyCourseTableData
→ const ({Null earliestPeriod, bool hasAMCourse, bool hasEveningCourse, bool hasNoonCourse, bool hasPMCourse, bool hasSaturdayCourse, bool hasSundayCourse, bool hasWeekdayCourse, Null latestPeriod, Map<({DayOfWeek day, Period period}), CourseTableCellData> scheduled, double totalCredits, int totalHours, List<CourseTableCellData> unscheduled})
-
An empty CourseTableData with no courses.
-
studentRosterTtl
→ const Duration
-
Typedefs
-
CourseMaterialList
= ({DateTime? fetchedAt, List<CourseMaterial> materials})
-
Cached material references and the timestamp of the last successful fetch.
-
CourseOfferingDetail
= ({List<({String code, String? nameEn, String nameZh})> classes, CourseOfferingOverview overview, List<({String? classroomNameEn, String? classroomNameZh, DayOfWeek day, Period period})> schedule, List<({String code, String? nameEn, String nameZh})> teachers})
-
Detailed data for a single course offering, sufficient to populate the
course-table detail bottom sheet. Composes the CourseOfferingOverview
view row (single-value offering+catalog fields) with the offering's
many-side relations (schedule slots, teachers, classes).
-
CourseStudentRoster
= ({DateTime? fetchedAt, List<Student> students})
-
Cached I-School Plus roster for a course offering.
-
CourseTableCellData
= ({String? classroomName, String courseName, double credits, bool crossesNoon, int hours, int id, String? number, int span, List<String> teacherNames})
-
Data for a single cell in the course table grid.
-
CourseTableData
= ({Period? earliestPeriod, bool hasAMCourse, bool hasEveningCourse, bool hasNoonCourse, bool hasPMCourse, bool hasSaturdayCourse, bool hasSundayCourse, bool hasWeekdayCourse, Period? latestPeriod, Map<({DayOfWeek day, Period period}), CourseTableCellData> scheduled, double totalCredits, int totalHours, List<CourseTableCellData> unscheduled})
-
Scheduled course table grid data and unscheduled courses, with
pre-computed layout metadata for the course table UI.
-
LatestCachedCourseTable
= ({CourseTableData courseTable, Semester semester})
-
Latest eligible semester and its fully normalized cached timetable.
-
SyllabusDetail
= ({Syllabus metadata, List<SyllabusSection> sections})
-
A submitted syllabus and its ordered dynamic content sections.
-
TeacherSyllabusDetail
= ({SyllabusDetail syllabus, ({String code, String? nameEn, String nameZh}) teacher})
-
A submitted syllabus paired with its authoring teacher.