import '../incomingPacket.dart'; class TimetablePacket extends IncomingPacket { TimetablePacket() : super('timetable'); TimeTableData _timeTable = TimeTableData(); TimeTableData get timeTable => _timeTable; @override void handle(data) { _timeTable = TimeTableData(); data.forEach((day) { TimeTableDay dayData = TimeTableDay(List.empty(growable: true), day['title']); day['tiles'].forEach((tile) { dayData._entries.add(TimeTableEntry( tile['title'], tile['title'], tile['room'], tile['title'], TimeTableEntryTime(tile['begin']['hour'], tile['begin']['minute']), TimeTableEntryTime(tile['end']['hour'], tile['end']['minute']) )); }); _timeTable._days.add(dayData); }); } } class TimeTableData { List _days = []; List get days => _days; set days(List value) { _days = value; } } class TimeTableDay { final List _entries; final String _name; TimeTableDay(this._entries, this._name); List get entries => _entries; String get name => _name; } class TimeTableEntry { late String subject; late String teacher; late String room; late String classes; late TimeTableEntryTime start; late TimeTableEntryTime end; TimeTableEntry(this.subject, this.teacher, this.room, this.classes, this.start, this.end); } class TimeTableEntryTime { int hour; int minute; TimeTableEntryTime(this.hour, this.minute); }