OverrideStartCondition.swift 719 B

123456789101112131415161718192021222324
  1. // LoopFollow
  2. // OverrideStartCondition.swift
  3. // Created by Jonas Björkert on 2025-05-14.
  4. import Foundation
  5. struct OverrideStartCondition: AlarmCondition {
  6. static let type: AlarmType = .overrideStart
  7. init() {}
  8. func evaluate(alarm _: Alarm, data: AlarmData) -> Bool {
  9. guard let startTS = data.latestOverrideStart, startTS > 0 else { return false }
  10. let recent = Date().timeIntervalSince1970 - startTS <= 15 * 60
  11. guard recent else { return false }
  12. let lastNotified = Storage.shared.lastOverrideStartNotified.value ?? 0
  13. guard startTS > lastNotified else { return false }
  14. Storage.shared.lastOverrideStartNotified.value = startTS
  15. return true
  16. }
  17. }