NSProfile.swift 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. struct TrioOverrideEntry: Decodable {
  43. let name: String
  44. let duration: Double?
  45. let percentage: Double?
  46. let target: Double?
  47. }
  48. struct LoopSettings: Decodable {
  49. struct LoopOverridePreset: Decodable {
  50. let name: String
  51. let duration: Int?
  52. let targetRange: [Double]?
  53. let insulinNeedsScaleFactor: Double?
  54. let symbol: String?
  55. }
  56. let deviceToken: String?
  57. let bundleIdentifier: String?
  58. let minimumBGGuard: Double?
  59. let maximumBolus: Double?
  60. let maximumBasalRatePerHour: Double?
  61. let scheduleOverride: ScheduleOverride?
  62. let dosingStrategy: String?
  63. let overridePresets: [LoopOverridePreset]?
  64. let dosingEnabled: Bool?
  65. struct ScheduleOverride: Decodable {
  66. let symbol: String?
  67. let duration: Int?
  68. let insulinNeedsScaleFactor: Double?
  69. let name: String?
  70. }
  71. }
  72. let trioOverrides: [TrioOverrideEntry]?
  73. let loopSettings: LoopSettings?
  74. enum CodingKeys: String, CodingKey {
  75. case store
  76. case defaultProfile
  77. case units
  78. case bundleIdentifier
  79. case isAPNSProduction
  80. case deviceToken
  81. case trioOverrides = "overridePresets"
  82. case loopSettings
  83. case teamID
  84. case expirationDate
  85. }
  86. }