NSProfile.swift 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // NSProfile.swift
  2. // LoopFollow
  3. // Created by Jonas Björkert on 2024-07-12.
  4. // Copyright © 2024 Jon Fawcett. All rights reserved.
  5. import Foundation
  6. struct NSProfile: Decodable {
  7. struct Store: Decodable {
  8. struct BasalEntry: Decodable {
  9. let value: Double
  10. let time: String
  11. let timeAsSeconds: Double
  12. }
  13. struct SensEntry: Decodable {
  14. let value: Double
  15. let time: String
  16. let timeAsSeconds: Double
  17. }
  18. struct CarbRatioEntry: Decodable {
  19. let value: Double
  20. let time: String
  21. let timeAsSeconds: Double
  22. }
  23. struct OverrideEntry: Decodable {
  24. let name: String?
  25. let targetRange: [Double]?
  26. let duration: Int?
  27. let insulinNeedsScaleFactor: Double?
  28. let symbol: String?
  29. }
  30. struct TargetEntry: Decodable {
  31. let value: Double
  32. let time: String
  33. let timeAsSeconds: Double
  34. }
  35. let basal: [BasalEntry]
  36. let sens: [SensEntry]
  37. let carbratio: [CarbRatioEntry]
  38. let overrides: [OverrideEntry]?
  39. let target_high: [TargetEntry]?
  40. let target_low: [TargetEntry]?
  41. let timezone: String
  42. let units: String
  43. }
  44. let store: [String: Store]
  45. let defaultProfile: String
  46. let units: String
  47. let bundleIdentifier: String?
  48. let isAPNSProduction: Bool?
  49. let deviceToken: String?
  50. let teamID: String?
  51. struct TrioOverrideEntry: Decodable {
  52. let name: String
  53. let duration: Double?
  54. let percentage: Double?
  55. let target: Double?
  56. }
  57. let trioOverrides: [TrioOverrideEntry]?
  58. enum CodingKeys: String, CodingKey {
  59. case store
  60. case defaultProfile
  61. case units
  62. case bundleIdentifier
  63. case isAPNSProduction
  64. case deviceToken
  65. case trioOverrides = "overridePresets"
  66. case teamID
  67. }
  68. }