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

Properties

courseRepositoryProvider → Provider<CourseRepository>
Provides the CourseRepository instance.
final

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.