68 lines
1.5 KiB
Dart
68 lines
1.5 KiB
Dart
|
|
|
|
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<TimeTableEntry>.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<TimeTableDay> _days = [];
|
|
|
|
List<TimeTableDay> get days => _days;
|
|
|
|
set days(List<TimeTableDay> value) {
|
|
_days = value;
|
|
}
|
|
}
|
|
|
|
class TimeTableDay {
|
|
final List<TimeTableEntry> _entries;
|
|
final String _name;
|
|
|
|
TimeTableDay(this._entries, this._name);
|
|
|
|
List<TimeTableEntry> 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);
|
|
} |