feat/blind_box_v2 #4

Merged
txcjh merged 18 commits from feat/blind_box_v2 into main 2025-09-07 22:23:23 +08:00
Showing only changes of commit 3e49ee9489 - Show all commits

View File

@ -16,6 +16,41 @@ struct MemberProfileResponse: Codable {
}
}
// MARK: - TitleRanking
struct TitleRanking: Codable {
let displayName: String
let ranking: Int
let value: Int
let materialType: String
let userId: String
let region: String
let userAvatarUrl: String?
let userNickName: String?
enum CodingKeys: String, CodingKey {
case displayName = "display_name"
case ranking
case value
case materialType = "material_type"
case userId = "user_id"
case region
case userAvatarUrl = "user_avatar_url"
case userNickName = "user_nick_name"
}
func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(displayName, forKey: .displayName)
try container.encode(ranking, forKey: .ranking)
try container.encode(value, forKey: .value)
try container.encode(materialType, forKey: .materialType)
try container.encode(userId, forKey: .userId)
try container.encode(region, forKey: .region)
try container.encodeIfPresent(userAvatarUrl, forKey: .userAvatarUrl)
try container.encodeIfPresent(userNickName, forKey: .userNickName)
}
}
// MARK: - MemberProfile
struct MemberProfile: Codable {
let materialCounter: MaterialCounter
@ -26,7 +61,7 @@ struct MemberProfile: Codable {
let totalPoints: Int
let usedBytes: Int
let totalBytes: Int
let titleRankings: [String]
let titleRankings: [TitleRanking]
let medalInfos: [MedalInfo]
let membershipLevel: String
let membershipEndAt: String
@ -57,7 +92,7 @@ struct MemberProfile: Codable {
totalPoints = try container.decode(Int.self, forKey: .totalPoints)
usedBytes = try container.decode(Int.self, forKey: .usedBytes)
totalBytes = try container.decode(Int.self, forKey: .totalBytes)
titleRankings = try container.decode([String].self, forKey: .titleRankings)
titleRankings = try container.decode([TitleRanking].self, forKey: .titleRankings)
if let medalInfos = try? container.decode([MedalInfo].self, forKey: .medalInfos) {
self.medalInfos = medalInfos