From d8929d37767c7cc80f3843a74f310f6b69fe104d Mon Sep 17 00:00:00 2001 From: christophergyman Date: Sat, 10 Jan 2026 21:54:21 +0000 Subject: [PATCH] Refactor TFL severity filtering to use Sets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace magic numbers with documented static Sets for clarity. ignoredSeverities and majorSeverities make the filtering logic self-documenting. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- IrisCompanion/iris/DataSources/TFLDataSource.swift | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/IrisCompanion/iris/DataSources/TFLDataSource.swift b/IrisCompanion/iris/DataSources/TFLDataSource.swift index b2b05b7..f128005 100644 --- a/IrisCompanion/iris/DataSources/TFLDataSource.swift +++ b/IrisCompanion/iris/DataSources/TFLDataSource.swift @@ -48,6 +48,11 @@ final class TFLDataSource { } } + // Severity 4 = Planned Closure, 5 = Part Closure, 10 = Good Service + private static let ignoredSeverities: Set = [4, 5, 10] + // Severity 1 = Closed, 2 = Suspended, 3 = Part Suspended, 6 = Severe Delays + private static let majorSeverities: Set = [1, 2, 3, 6] + private let config: TFLDataSourceConfig private var cache: (timestamp: Int, data: TFLData)? @@ -99,12 +104,10 @@ final class TFLDataSource { guard !seenLines.contains(line.id) else { continue } for status in line.lineStatuses { - // Skip: 10 = Good Service, 4 = Planned Closure, 5 = Part Closure - guard status.statusSeverity < 10 else { continue } - guard status.statusSeverity != 4 && status.statusSeverity != 5 else { continue } + guard !Self.ignoredSeverities.contains(status.statusSeverity) else { continue } seenLines.insert(line.id) - let isMajor = status.statusSeverity <= 3 || status.statusSeverity == 6 + let isMajor = Self.majorSeverities.contains(status.statusSeverity) let disruption = Disruption( id: "\(line.id):\(status.statusSeverity)",