68 lines · 3.8 KB · Swift
RawDownload
struct MiniMaxModelRemains: Decodable {    let modelName: String?    let currentIntervalTotalCount: Int?    let currentIntervalUsageCount: Int?    let startTime: Int?    let endTime: Int?    let remainsTime: Int?    let intervalBoostPermille: Int?    let currentIntervalRemainingPercent: Double?    let currentIntervalStatus: Int?    let currentWeeklyTotalCount: Int?    let currentWeeklyUsageCount: Int?    let weeklyStartTime: Int?    let weeklyEndTime: Int?    let weeklyRemainsTime: Int?    let weeklyBoostPermille: Int?    let currentWeeklyRemainingPercent: Double?    let currentWeeklyStatus: Int?     private enum CodingKeys: String, CodingKey {        case modelName = "model_name"        case currentIntervalTotalCount = "current_interval_total_count"        case currentIntervalUsageCount = "current_interval_usage_count"        case startTime = "start_time"        case endTime = "end_time"        case remainsTime = "remains_time"        case intervalBoostPermille = "interval_boost_permill"        case intervalBoostPermilleAlt = "interval_boost_permille"        case currentIntervalRemainingPercent = "current_interval_remaining_percent"        case currentIntervalStatus = "current_interval_status"        case currentWeeklyTotalCount = "current_weekly_total_count"        case currentWeeklyUsageCount = "current_weekly_usage_count"        case weeklyStartTime = "weekly_start_time"        case weeklyEndTime = "weekly_end_time"        case weeklyRemainsTime = "weekly_remains_time"        case weeklyBoostPermille = "weekly_boost_permill"        case weeklyBoostPermilleAlt = "weekly_boost_permille"        case currentWeeklyRemainingPercent = "current_weekly_remaining_percent"        case currentWeeklyStatus = "current_weekly_status"    }     init(from decoder: Decoder) throws {        let container = try decoder.container(keyedBy: CodingKeys.self)        self.modelName = try container.decodeIfPresent(String.self, forKey: .modelName)        self.currentIntervalTotalCount = MiniMaxDecoding.decodeInt(container, forKey: .currentIntervalTotalCount)        self.currentIntervalUsageCount = MiniMaxDecoding.decodeInt(container, forKey: .currentIntervalUsageCount)        self.startTime = MiniMaxDecoding.decodeInt(container, forKey: .startTime)        self.endTime = MiniMaxDecoding.decodeInt(container, forKey: .endTime)        self.remainsTime = MiniMaxDecoding.decodeInt(container, forKey: .remainsTime)        self.intervalBoostPermille = MiniMaxDecoding.decodeInt(container, forKey: .intervalBoostPermille)            ?? MiniMaxDecoding.decodeInt(container, forKey: .intervalBoostPermilleAlt)        self.currentIntervalRemainingPercent = MiniMaxDecoding.decodeDouble(            container,            forKey: .currentIntervalRemainingPercent)        self.currentIntervalStatus = MiniMaxDecoding.decodeInt(container, forKey: .currentIntervalStatus)        self.currentWeeklyTotalCount = MiniMaxDecoding.decodeInt(container, forKey: .currentWeeklyTotalCount)        self.currentWeeklyUsageCount = MiniMaxDecoding.decodeInt(container, forKey: .currentWeeklyUsageCount)        self.weeklyStartTime = MiniMaxDecoding.decodeInt(container, forKey: .weeklyStartTime)        self.weeklyEndTime = MiniMaxDecoding.decodeInt(container, forKey: .weeklyEndTime)        self.weeklyRemainsTime = MiniMaxDecoding.decodeInt(container, forKey: .weeklyRemainsTime)        self.weeklyBoostPermille = MiniMaxDecoding.decodeInt(container, forKey: .weeklyBoostPermille)            ?? MiniMaxDecoding.decodeInt(container, forKey: .weeklyBoostPermilleAlt)        self.currentWeeklyRemainingPercent = MiniMaxDecoding.decodeDouble(            container,            forKey: .currentWeeklyRemainingPercent)        self.currentWeeklyStatus = MiniMaxDecoding.decodeInt(container, forKey: .currentWeeklyStatus)    }}