| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- import Foundation
- struct Statistics: JSON, Equatable {
- var created_at: Date
- var iPhone: String
- var iOS: String
- var Build_Version: String
- var Build_Number: String
- var Branch: String
- var CopyRightNotice: String
- var Build_Date: Date
- var Algorithm: String
- var AdjustmentFactor: Decimal
- var Pump: String
- var CGM: String
- var insulinType: String
- var peakActivityTime: Decimal
- var Carbs_24h: Decimal
- var GlucoseStorage_Days: Decimal
- var Statistics: Stats
- init(
- created_at: Date,
- iPhone: String,
- iOS: String,
- Build_Version: String,
- Build_Number: String,
- Branch: String,
- CopyRightNotice: String,
- Build_Date: Date,
- Algorithm: String,
- AdjustmentFactor: Decimal,
- Pump: String,
- CGM: String,
- insulinType: String,
- peakActivityTime: Decimal,
- Carbs_24h: Decimal,
- GlucoseStorage_Days: Decimal,
- Statistics: Stats
- ) {
- self.created_at = created_at
- self.iPhone = iPhone
- self.iOS = iOS
- self.Build_Version = Build_Version
- self.Build_Number = Build_Number
- self.Branch = Branch
- self.CopyRightNotice = CopyRightNotice
- self.Build_Date = Build_Date
- self.Algorithm = Algorithm
- self.AdjustmentFactor = AdjustmentFactor
- self.Pump = Pump
- self.CGM = CGM
- self.insulinType = insulinType
- self.peakActivityTime = peakActivityTime
- self.Carbs_24h = Carbs_24h
- self.GlucoseStorage_Days = GlucoseStorage_Days
- self.Statistics = Statistics
- }
- static func == (lhs: Statistics, rhs: Statistics) -> Bool {
- lhs.created_at == rhs.created_at
- }
- func hash(into hasher: inout Hasher) {
- hasher.combine(created_at)
- }
- }
- extension Statistics {
- private enum CodingKeys: String, CodingKey {
- case created_at
- case iPhone
- case iOS
- case Build_Version
- case Build_Number
- case Branch
- case CopyRightNotice
- case Build_Date
- case Algorithm
- case AdjustmentFactor
- case Pump
- case CGM
- case insulinType
- case peakActivityTime
- case Carbs_24h
- case GlucoseStorage_Days
- case Statistics
- }
- }
- struct LoopCycles: JSON, Equatable {
- var loops: Int
- var errors: Int
- var readings: Int
- var success_rate: Decimal
- var avg_interval: Decimal
- var median_interval: Decimal
- var min_interval: Decimal
- var max_interval: Decimal
- var avg_duration: Decimal
- var median_duration: Decimal
- var min_duration: Decimal
- var max_duration: Decimal
- }
- struct Averages: JSON, Equatable {
- var Average: Durations
- var Median: Durations
- }
- struct Durations: JSON, Equatable {
- var day: Decimal
- var week: Decimal
- var month: Decimal
- var total: Decimal
- }
- struct Threshold: JSON, Equatable {
- var low: Decimal
- var high: Decimal
- }
- struct TIRs: JSON, Equatable {
- var TIR: Durations
- var Hypos: Durations
- var Hypers: Durations
- var Threshold: Threshold
- }
- struct Ins: JSON, Equatable {
- let TDD: Decimal?
- let bolus: Decimal?
- let temp_basal: Decimal?
- let scheduled_basal: Decimal?
- let total_average: Decimal?
- }
- struct Variance: JSON, Equatable {
- var SD: Durations
- var CV: Durations
- }
- struct Stats: JSON, Equatable {
- var Distribution: TIRs
- var Glucose: Averages
- var HbA1c: Durations
- var LoopCycles: LoopCycles
- var Insulin: Ins
- var Variance: Variance
- }
- extension LoopCycles {
- private enum CodingKeys: String, CodingKey {
- case loops
- case errors
- case readings
- case success_rate
- case avg_interval
- case median_interval
- case min_interval
- case max_interval
- case avg_duration
- case median_duration
- case min_duration
- case max_duration
- }
- }
- extension Averages {
- private enum CodingKeys: String, CodingKey {
- case Average
- case Median
- }
- }
- extension TIRs {
- private enum CodingKeys: String, CodingKey {
- case TIR
- case Hypos
- case Hypers
- case Threshold
- }
- }
- extension Ins {
- private enum CodingKeys: String, CodingKey {
- case TDD
- case bolus
- case temp_basal
- case scheduled_basal
- case total_average
- }
- }
- extension Variance {
- private enum CodingKeys: String, CodingKey {
- case SD
- case CV
- }
- }
- extension Stats {
- private enum CodingKeys: String, CodingKey {
- case Distribution
- case Glucose
- case HbA1c
- case LoopCycles
- case Insulin
- case Variance
- }
- }
|