OverrideEndCondition.swift 652 B

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