DateRelativeBolusEntry.swift 947 B

12345678910111213141516171819202122232425262728
  1. //
  2. // DateRelativeBolusEntry.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 DateRelativeBolusEntry: DateRelativeQuantity, Codable {
  10. var unitsValue: Double
  11. var dateOffset: TimeInterval
  12. var deliveryDuration: TimeInterval
  13. func doseEntry(relativeTo referenceDate: Date) -> DoseEntry {
  14. let startDate = referenceDate.addingTimeInterval(dateOffset)
  15. let endDate = startDate.addingTimeInterval(deliveryDuration)
  16. return DoseEntry(type: .bolus, startDate: startDate, endDate: endDate, value: unitsValue, unit: .units)
  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: "Bolus", type: .bolus)
  21. }
  22. }