DateRelativeBasalEntry.swift 960 B

12345678910111213141516171819202122232425262728
  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 LoopKit
  9. struct DateRelativeBasalEntry: DateRelativeQuantity, Codable {
  10. var unitsPerHourValue: Double
  11. var dateOffset: TimeInterval
  12. var duration: TimeInterval
  13. func doseEntry(relativeTo referenceDate: Date) -> DoseEntry {
  14. let startDate = referenceDate.addingTimeInterval(dateOffset)
  15. let endDate = startDate.addingTimeInterval(duration)
  16. return DoseEntry(type: .tempBasal, startDate: startDate, endDate: endDate, value: unitsPerHourValue, unit: .unitsPerHour)
  17. }
  18. func newPumpEvent(relativeTo referenceDate: Date) -> NewPumpEvent {
  19. let dose = doseEntry(relativeTo: referenceDate)
  20. return NewPumpEvent(date: dose.startDate, dose: dose, isMutable: false, raw: .newPumpEventIdentifier(), title: "Basal", type: .tempBasal)
  21. }
  22. }