amtkstat/Sources/AmtrakStatus/LateTrain.swift
Tony Bark f8eef909d2 Added handling for stale trains
- Renamed TrainLateness to LateTrain
2026-08-24 22:53:15 -04:00

49 lines
1.2 KiB
Swift

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
}
}