NSProfile.swift 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. // LoopFollow
  2. // NSProfile.swift
  3. import Foundation
  4. struct NSProfile: Decodable {
  5. struct Store: Decodable {
  6. struct BasalEntry: Decodable {
  7. let value: Double
  8. let time: String
  9. let timeAsSeconds: Double
  10. }
  11. struct SensEntry: Decodable {
  12. let value: Double
  13. let time: String
  14. let timeAsSeconds: Double
  15. }
  16. struct CarbRatioEntry: Decodable {
  17. let value: Double
  18. let time: String
  19. let timeAsSeconds: Double
  20. }
  21. struct TargetEntry: Decodable {
  22. let value: Double
  23. let time: String
  24. let timeAsSeconds: Double
  25. }
  26. let basal: [BasalEntry]
  27. let sens: [SensEntry]
  28. let carbratio: [CarbRatioEntry]
  29. let target_high: [TargetEntry]?
  30. let target_low: [TargetEntry]?
  31. let timezone: String
  32. let units: String
  33. }
  34. let store: [String: Store]
  35. let defaultProfile: String
  36. let units: String
  37. let bundleIdentifier: String?
  38. let isAPNSProduction: Bool?
  39. let deviceToken: String?
  40. let teamID: String?
  41. let expirationDate: String?
  42. let startDate: String?
  43. let createdAt: String?
  44. struct TrioOverrideEntry: Decodable {
  45. let name: String
  46. let duration: Double?
  47. let percentage: Double?
  48. let target: Double?
  49. }
  50. struct LoopSettings: Decodable {
  51. struct LoopOverridePreset: Decodable {
  52. let name: String
  53. let duration: Int?
  54. let targetRange: [Double]?
  55. let insulinNeedsScaleFactor: Double?
  56. let symbol: String?
  57. }
  58. let deviceToken: String?
  59. let bundleIdentifier: String?
  60. let minimumBGGuard: Double?
  61. let maximumBolus: Double?
  62. let maximumBasalRatePerHour: Double?
  63. let scheduleOverride: ScheduleOverride?
  64. let dosingStrategy: String?
  65. let overridePresets: [LoopOverridePreset]?
  66. let dosingEnabled: Bool?
  67. struct ScheduleOverride: Decodable {
  68. let symbol: String?
  69. let duration: Int?
  70. let insulinNeedsScaleFactor: Double?
  71. let name: String?
  72. }
  73. }
  74. let trioOverrides: [TrioOverrideEntry]?
  75. let loopSettings: LoopSettings?
  76. enum CodingKeys: String, CodingKey {
  77. case store
  78. case defaultProfile
  79. case units
  80. case bundleIdentifier
  81. case isAPNSProduction
  82. case deviceToken
  83. case trioOverrides = "overridePresets"
  84. case loopSettings
  85. case teamID
  86. case expirationDate
  87. case startDate
  88. case createdAt = "created_at"
  89. }
  90. }