Files
steipete--codexbar/Sources/CodexBarCore/Providers/MiniMax/MiniMaxModelRemains.swift
T
2026-07-13 12:22:33 +08:00

69 lines
3.8 KiB
Swift

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)
}
}