From ebff2c9c3267b0d03a9cff39f471ac1ce00f062c Mon Sep 17 00:00:00 2001 From: Tony Bark <35226681+tonytins@users.noreply.github.com> Date: Sun, 23 Aug 2026 18:19:55 -0400 Subject: [PATCH] Expand station and status models Added richer station metadata and status handling to match the Amtrak API payload. This commit introduces new station fields for name, timezone, schedule/actual timings, platform, and status, along with extra train row properties for origin and arrival/departure details used by the UI. --- Sources/AmtrakStatus/Models.swift | 38 +++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/Sources/AmtrakStatus/Models.swift b/Sources/AmtrakStatus/Models.swift index 29effcb..ad3f39d 100644 --- a/Sources/AmtrakStatus/Models.swift +++ b/Sources/AmtrakStatus/Models.swift @@ -4,9 +4,27 @@ struct TrainAlert: Codable { var message: String } -struct Station: Codable { +struct Station: Codable, Sendable { + var name: String var code: String - var platform: String? + var tz: String + var bus: Bool + var schArr: String + var schDep: String + var arr: String + var dep: String + var arrCmnt: String + var depCmnt: String + var status: StationStatus + var stopIconColor: String + var platform: String +} + +enum StationStatus: String, Codable, Sendable { + case enroute = "Enroute" + case station = "Station" + case departed = "Departed" + case unknown = "Unknown" } struct Train: Codable { @@ -65,15 +83,25 @@ struct StaleData: Codable { typealias TrainResponse = [String: [Train]] typealias StationResponse = [String: StationMeta] +struct AmtrakDateFormatting { + let isoFormatter = ISO8601DateFormatter() + + +} + struct TrainStatusRow: Identifiable { var id: String { trainID } - + var trainID: String var trainNum: String + var originating: String var routeName: String - var origin: String - var destination: String var platform: String + var arrival: String + var departure: String + var origin: String + var syatus: String + var destination: String }