TempTargetStartCondition.swift 734 B

1234567891011121314151617181920212223
  1. // LoopFollow
  2. // TempTargetStartCondition.swift
  3. // Created by Jonas Björkert on 2025-05-14.
  4. import Foundation
  5. /// Fires once when a temp-target is activated.
  6. struct TempTargetStartCondition: AlarmCondition {
  7. static let type: AlarmType = .tempTargetStart
  8. init() {}
  9. func evaluate(alarm _: Alarm, data: AlarmData) -> Bool {
  10. guard let startTS = data.latestTempTargetStart, startTS > 0 else { return false }
  11. guard Date().timeIntervalSince1970 - startTS <= 15 * 60 else { return false }
  12. let last = Storage.shared.lastTempTargetStartNotified.value ?? 0
  13. guard startTS > last else { return false }
  14. Storage.shared.lastTempTargetStartNotified.value = startTS
  15. return true
  16. }
  17. }