Added explicit timetable objects with defined types

This commit is contained in:
2023-06-19 10:54:23 +02:00
parent 3d6e0cec0e
commit b7bb3805a2
11 changed files with 235 additions and 171 deletions

View File

@ -32,10 +32,10 @@ class GetTimetableResponseObject {
String? sg;
String? bkRemark;
String? bkText;
List<dynamic> kl;
List<dynamic> te;
List<dynamic> su;
List<dynamic> ro;
List<GetTimetableResponseObjectClass> kl;
List<GetTimetableResponseObjectTeacher> te;
List<GetTimetableResponseObjectSubject> su;
List<GetTimetableResponseObjectRoom> ro;
GetTimetableResponseObject({
required this.id,
@ -83,4 +83,57 @@ class GetTimetableResponseObjectFieldsObject {
factory GetTimetableResponseObjectFieldsObject.fromJson(Map<String, dynamic> json) => _$GetTimetableResponseObjectFieldsObjectFromJson(json);
Map<String, dynamic> toJson() => _$GetTimetableResponseObjectFieldsObjectToJson(this);
}
@JsonSerializable()
class GetTimetableResponseObjectClass {
int id;
String name;
String longname;
String? externalkey;
GetTimetableResponseObjectClass(this.id, this.name, this.longname, this.externalkey);
factory GetTimetableResponseObjectClass.fromJson(Map<String, dynamic> json) => _$GetTimetableResponseObjectClassFromJson(json);
Map<String, dynamic> toJson() => _$GetTimetableResponseObjectClassToJson(this);
}
@JsonSerializable()
class GetTimetableResponseObjectTeacher {
int id;
String name;
String longname;
int? orgid;
String? orgname;
String? externalkey;
GetTimetableResponseObjectTeacher(this.id, this.name, this.longname, this.orgid, this.orgname, this.externalkey);
factory GetTimetableResponseObjectTeacher.fromJson(Map<String, dynamic> json) => _$GetTimetableResponseObjectTeacherFromJson(json);
Map<String, dynamic> toJson() => _$GetTimetableResponseObjectTeacherToJson(this);
}
@JsonSerializable()
class GetTimetableResponseObjectSubject {
int id;
String name;
String longname;
GetTimetableResponseObjectSubject(this.id, this.name, this.longname);
factory GetTimetableResponseObjectSubject.fromJson(Map<String, dynamic> json) => _$GetTimetableResponseObjectSubjectFromJson(json);
Map<String, dynamic> toJson() => _$GetTimetableResponseObjectSubjectToJson(this);
}
@JsonSerializable()
class GetTimetableResponseObjectRoom {
int id;
String name;
String longname;
GetTimetableResponseObjectRoom(this.id, this.name, this.longname);
factory GetTimetableResponseObjectRoom.fromJson(Map<String, dynamic> json) => _$GetTimetableResponseObjectRoomFromJson(json);
Map<String, dynamic> toJson() => _$GetTimetableResponseObjectRoomToJson(this);
}

View File

@ -38,10 +38,22 @@ GetTimetableResponseObject _$GetTimetableResponseObjectFromJson(
activityType: json['activityType'] as String?,
sg: json['sg'] as String?,
bkRemark: json['bkRemark'] as String?,
kl: json['kl'] as List<dynamic>,
te: json['te'] as List<dynamic>,
su: json['su'] as List<dynamic>,
ro: json['ro'] as List<dynamic>,
kl: (json['kl'] as List<dynamic>)
.map((e) => GetTimetableResponseObjectClass.fromJson(
e as Map<String, dynamic>))
.toList(),
te: (json['te'] as List<dynamic>)
.map((e) => GetTimetableResponseObjectTeacher.fromJson(
e as Map<String, dynamic>))
.toList(),
su: (json['su'] as List<dynamic>)
.map((e) => GetTimetableResponseObjectSubject.fromJson(
e as Map<String, dynamic>))
.toList(),
ro: (json['ro'] as List<dynamic>)
.map((e) => GetTimetableResponseObjectRoom.fromJson(
e as Map<String, dynamic>))
.toList(),
)..bkText = json['bkText'] as String?;
Map<String, dynamic> _$GetTimetableResponseObjectToJson(
@ -62,10 +74,10 @@ Map<String, dynamic> _$GetTimetableResponseObjectToJson(
'sg': instance.sg,
'bkRemark': instance.bkRemark,
'bkText': instance.bkText,
'kl': instance.kl,
'te': instance.te,
'su': instance.su,
'ro': instance.ro,
'kl': instance.kl.map((e) => e.toJson()).toList(),
'te': instance.te.map((e) => e.toJson()).toList(),
'su': instance.su.map((e) => e.toJson()).toList(),
'ro': instance.ro.map((e) => e.toJson()).toList(),
};
GetTimetableResponseObjectFields _$GetTimetableResponseObjectFieldsFromJson(
@ -101,3 +113,75 @@ Map<String, dynamic> _$GetTimetableResponseObjectFieldsObjectToJson(
'longname': instance.longname,
'externalkey': instance.externalkey,
};
GetTimetableResponseObjectClass _$GetTimetableResponseObjectClassFromJson(
Map<String, dynamic> json) =>
GetTimetableResponseObjectClass(
json['id'] as int,
json['name'] as String,
json['longname'] as String,
json['externalkey'] as String?,
);
Map<String, dynamic> _$GetTimetableResponseObjectClassToJson(
GetTimetableResponseObjectClass instance) =>
<String, dynamic>{
'id': instance.id,
'name': instance.name,
'longname': instance.longname,
'externalkey': instance.externalkey,
};
GetTimetableResponseObjectTeacher _$GetTimetableResponseObjectTeacherFromJson(
Map<String, dynamic> json) =>
GetTimetableResponseObjectTeacher(
json['id'] as int,
json['name'] as String,
json['longname'] as String,
json['orgid'] as int?,
json['orgname'] as String?,
json['externalkey'] as String?,
);
Map<String, dynamic> _$GetTimetableResponseObjectTeacherToJson(
GetTimetableResponseObjectTeacher instance) =>
<String, dynamic>{
'id': instance.id,
'name': instance.name,
'longname': instance.longname,
'orgid': instance.orgid,
'orgname': instance.orgname,
'externalkey': instance.externalkey,
};
GetTimetableResponseObjectSubject _$GetTimetableResponseObjectSubjectFromJson(
Map<String, dynamic> json) =>
GetTimetableResponseObjectSubject(
json['id'] as int,
json['name'] as String,
json['longname'] as String,
);
Map<String, dynamic> _$GetTimetableResponseObjectSubjectToJson(
GetTimetableResponseObjectSubject instance) =>
<String, dynamic>{
'id': instance.id,
'name': instance.name,
'longname': instance.longname,
};
GetTimetableResponseObjectRoom _$GetTimetableResponseObjectRoomFromJson(
Map<String, dynamic> json) =>
GetTimetableResponseObjectRoom(
json['id'] as int,
json['name'] as String,
json['longname'] as String,
);
Map<String, dynamic> _$GetTimetableResponseObjectRoomToJson(
GetTimetableResponseObjectRoom instance) =>
<String, dynamic>{
'id': instance.id,
'name': instance.name,
'longname': instance.longname,
};