AlarmConfiguration.swift 1004 B

1234567891011121314151617181920212223242526272829303132333435
  1. // AlarmConfiguration.swift
  2. // LoopFollow
  3. //
  4. // Created by Jonas Björkert on 2025‑04‑20.
  5. // Copyright © 2025 Jon Fawcett. All rights reserved.
  6. //
  7. import Foundation
  8. struct AlarmConfiguration: Codable, Equatable {
  9. // MARK: Core
  10. var snoozeUntil: Date?
  11. var muteUntil: Date?
  12. var dayStart: TimeOfDay
  13. var nightStart: TimeOfDay
  14. // MARK: System audio overrides
  15. var overrideSystemOutputVolume: Bool
  16. var forcedOutputVolume: Float // 0 … 1
  17. var audioDuringCalls: Bool
  18. var ignoreZeroBG: Bool
  19. var autoSnoozeCGMStart: Bool
  20. static let `default` = AlarmConfiguration(
  21. muteUntil: nil,
  22. dayStart: TimeOfDay(hour: 6, minute: 0),
  23. nightStart: TimeOfDay(hour: 22, minute: 0),
  24. overrideSystemOutputVolume: true,
  25. forcedOutputVolume: 0.5,
  26. audioDuringCalls: true,
  27. ignoreZeroBG: true,
  28. autoSnoozeCGMStart: false,
  29. )
  30. }