DateRelativeBasalEntry.swift 960 B

1234567891011121314151617181920212223242526272829
  1. //
  2. // DateRelativeBasalEntry.swift
  3. // LoopTestingKit
  4. //
  5. // Created by Michael Pangburn on 4/20/19.
  6. // Copyright © 2019 LoopKit Authors. All rights reserved.
  7. //
  8. import Foundation
  9. import LoopKit
  10. struct DateRelativeBasalEntry: DateRelativeQuantity, Codable {
  11. var unitsPerHourValue: Double
  12. var dateOffset: TimeInterval
  13. var duration: TimeInterval
  14. func doseEntry(relativeTo referenceDate: Date) -> DoseEntry {
  15. let startDate = referenceDate.addingTimeInterval(dateOffset)
  16. let endDate = startDate.addingTimeInterval(duration)
  17. return DoseEntry(type: .tempBasal, startDate: startDate, endDate: endDate, value: unitsPerHourValue, unit: .unitsPerHour)
  18. }
  19. func newPumpEvent(relativeTo referenceDate: Date) -> NewPumpEvent {
  20. let dose = doseEntry(relativeTo: referenceDate)
  21. return NewPumpEvent(date: dose.startDate, dose: dose, raw: .newPumpEventIdentifier(), title: "Basal", type: .tempBasal)
  22. }
  23. }