TempTarget.swift 953 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import Foundation
  2. struct TempTarget: JSON, Identifiable, Equatable, Hashable {
  3. var id = UUID().uuidString
  4. let name: String?
  5. var createdAt: Date
  6. let targetTop: Decimal?
  7. let targetBottom: Decimal?
  8. let duration: Decimal
  9. let enteredBy: String?
  10. let reason: String?
  11. static let manual = "freeaps-x"
  12. static let custom = "Temp target"
  13. static let cancel = "Cancel"
  14. var displayName: String {
  15. name ?? reason ?? TempTarget.custom
  16. }
  17. static func == (lhs: TempTarget, rhs: TempTarget) -> Bool {
  18. lhs.createdAt == rhs.createdAt
  19. }
  20. func hash(into hasher: inout Hasher) {
  21. hasher.combine(createdAt)
  22. }
  23. }
  24. extension TempTarget {
  25. private enum CodingKeys: String, CodingKey {
  26. case id = "_id"
  27. case name
  28. case createdAt = "created_at"
  29. case targetTop
  30. case targetBottom
  31. case duration
  32. case enteredBy
  33. case reason
  34. }
  35. }