Added handling for stale trains

- Renamed TrainLateness to LateTrain
This commit is contained in:
Tony Bark 2026-08-24 22:53:15 -04:00
parent e0077ec13b
commit f8eef909d2
5 changed files with 72 additions and 17 deletions

View file

@ -0,0 +1,49 @@
import Foundation
import SwiftCrossUI
enum LateTrain {
case onTime
case early(minutes: Int)
case late(minutes: Int)
case unknown
var descrption: String {
switch self {
case .onTime:
return "On Time"
case .early(minutes: let minutes):
return "\(Self.formatted(minutes)) early"
case .late(minutes: let minutes):
return "\(Self.formatted(minutes)) late"
case .unknown:
return ""
}
}
var color: Color {
switch self {
case .onTime:
return .green
case .early:
return .blue
case .late:
return .red
case .unknown:
return .gray
}
}
static func formatted(_ minutes: Int) -> String {
let hours = minutes / 60
let remainder = minutes % 60
let minutesPart = "\(minutes) \(minutes.pluralized(singular: "min", plural: "mins"))"
let hoursPart = "\(hours) \(hours.pluralized(singular: "hr", plural: "hrs"))"
guard hours > 0 else {
return minutesPart
}
return hoursPart
}
}