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; } }