DailyStats.swift 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import Foundation
  2. struct DailyStats: JSON, Equatable {
  3. var createdAt: Date
  4. var iPhone: String
  5. var iOS: String
  6. var Build_Version: String
  7. var Build_Number: String
  8. var Branch: String
  9. var Build_Date: Date
  10. var Algorithm: String
  11. var AdjustmentFactor: Decimal
  12. var Pump: String
  13. var CGM: String
  14. var insulinType: String
  15. var peakActivityTime: Decimal
  16. var TDD: Decimal
  17. var Carbs_24h: Decimal
  18. var TIR: String
  19. var BG_Average: String
  20. var HbA1c: String
  21. var LoopStats: [LoopCycles]
  22. init(
  23. createdAt: Date,
  24. iPhone: String,
  25. iOS: String,
  26. Build_Version: String,
  27. Build_Number: String,
  28. Branch: String,
  29. Build_Date: Date,
  30. Algorithm: String,
  31. AdjustmentFactor: Decimal,
  32. Pump: String,
  33. CGM: String,
  34. insulinType: String,
  35. peakActivityTime: Decimal,
  36. TDD: Decimal,
  37. Carbs_24h: Decimal,
  38. TIR: String,
  39. BG_Average: String,
  40. HbA1c: String,
  41. LoopStats: [LoopCycles]
  42. ) {
  43. self.createdAt = createdAt
  44. self.iPhone = iPhone
  45. self.iOS = iOS
  46. self.Build_Version = Build_Version
  47. self.Build_Number = Build_Number
  48. self.Branch = Branch
  49. self.Build_Date = Build_Date
  50. self.Algorithm = Algorithm
  51. self.AdjustmentFactor = AdjustmentFactor
  52. self.Pump = Pump
  53. self.CGM = CGM
  54. self.insulinType = insulinType
  55. self.peakActivityTime = peakActivityTime
  56. self.TDD = TDD
  57. self.Carbs_24h = Carbs_24h
  58. self.TIR = TIR
  59. self.BG_Average = BG_Average
  60. self.HbA1c = HbA1c
  61. self.LoopStats = LoopStats
  62. }
  63. static func == (lhs: DailyStats, rhs: DailyStats) -> Bool {
  64. lhs.createdAt == rhs.createdAt
  65. }
  66. func hash(into hasher: inout Hasher) {
  67. hasher.combine(createdAt)
  68. }
  69. }
  70. extension DailyStats {
  71. private enum CodingKeys: String, CodingKey {
  72. case createdAt
  73. case iPhone
  74. case iOS
  75. case Build_Version
  76. case Build_Number
  77. case Branch
  78. case Build_Date
  79. case Algorithm
  80. case AdjustmentFactor
  81. case Pump
  82. case CGM
  83. case insulinType
  84. case peakActivityTime
  85. case TDD
  86. case Carbs_24h
  87. case TIR
  88. case BG_Average
  89. case HbA1c
  90. case LoopStats
  91. }
  92. }
  93. struct LoopCycles: JSON, Equatable {
  94. var success_rate: Decimal
  95. var loops: Int
  96. var errors: Int
  97. var median_interval: Decimal
  98. var avg_interval: Decimal
  99. var min_interval: Decimal
  100. var max_interval: Decimal
  101. var median_duration: Decimal
  102. var avg_duration: Decimal
  103. var min_duration: Decimal
  104. var max_duration: Decimal
  105. }
  106. extension LoopCycles {
  107. private enum CodingKeys: String, CodingKey {
  108. case success_rate
  109. case loops
  110. case errors
  111. case median_interval
  112. case avg_interval
  113. case min_interval
  114. case max_interval
  115. case median_duration
  116. case avg_duration
  117. case min_duration
  118. case max_duration
  119. }
  120. }