import '../../../../api/webuntis/queries/get_timetable/get_timetable_response.dart'; enum LessonStatus { cancelled, event, irregular, teacherChanged, past, ongoing, regular, } class LessonStatusClassifier { static LessonStatus classify( GetTimetableResponseObject lesson, DateTime startTime, DateTime endTime, DateTime now, { bool isEvent = false, }) { if (lesson.code == 'cancelled') return LessonStatus.cancelled; if (isEvent) return LessonStatus.event; if (lesson.code == 'irregular' || (lesson.te.isNotEmpty && lesson.te.first.id == 0)) return LessonStatus.irregular; if (lesson.te.any((t) => t.orgname != null)) return LessonStatus.teacherChanged; if (endTime.isBefore(now)) return LessonStatus.past; if (startTime.isBefore(now) && endTime.isAfter(now)) return LessonStatus.ongoing; return LessonStatus.regular; } }