feat(transport_helper): add arrivalTime for more precision

helpful when vehicles are waiting on-station
should be covered by fallbacks without introducing nullability down the
line
This commit is contained in:
fbachus
2026-07-22 01:35:20 +02:00
parent d7aa2a1b46
commit fce749ba3a
+24 -1
View File
@@ -758,6 +758,7 @@ class Departure {
String vehicleId;
String vehicleName;
String stationId;
DateTime arrivalTime;
DateTime departureTime;
Departure({
@@ -765,6 +766,7 @@ class Departure {
required this.vehicleId,
required this.vehicleName,
required this.stationId,
required this.arrivalTime,
required this.departureTime,
});
@@ -774,6 +776,7 @@ class Departure {
"vehicle": vehicleId,
"vehiclename": vehicleName,
"station": stationId,
"arrivaltime": arrivalTime,
"departuretime": departureTime,
};
}
@@ -784,6 +787,7 @@ class Departure {
vehicleId: map["vehicle"] as String,
vehicleName: map["vehiclename"] as String,
stationId: map["station"] as String,
arrivalTime: map["arrivaltime"] as DateTime,
departureTime: map["departuretime"] as DateTime,
);
}
@@ -804,11 +808,30 @@ class Departure {
// } catch (e) {
// station.dbUpdate();
// }
DateTime? arrDateTime;
DateTime? depDateTime;
String? arrivalDate = json["arrDate"];
String? arrivalTime = json["arrTime"];
if (arrivalDate != null && arrivalTime != null) {
arrDateTime = DateTime.parse('${arrivalDate}T$arrivalTime');
}
String? departureDate = json["depDate"] ?? json["date"];
String? departureTime = json["depTime"] ?? json["time"];
if (departureDate != null && departureTime != null) {
depDateTime = DateTime.parse('${departureDate}T$departureTime');
}
return Departure(
vehicleId: vehicle.id,
vehicleName: vehicle.name,
stationId: station.id,
departureTime: DateTime.parse('${json["date"]}T${json["time"]}'),
arrivalTime:
arrDateTime ??
depDateTime as DateTime, // one of these has to be in the json
departureTime:
depDateTime ??
arrDateTime as DateTime, // one of these has to be in the json
);
}