29 lines
706 B
Swift
29 lines
706 B
Swift
import Foundation
|
|
|
|
struct AudioRankingResponse: Decodable {
|
|
let showRankChange: Bool
|
|
let type: AudioRankingType
|
|
let items: [AudioRankingItemResponse]
|
|
}
|
|
|
|
enum AudioRankingType: String, Decodable, CaseIterable, Hashable {
|
|
case weeklyPopular = "WEEKLY_POPULAR"
|
|
case rising = "RISING"
|
|
case revenue = "REVENUE"
|
|
case salesCount = "SALES_COUNT"
|
|
case commentCount = "COMMENT_COUNT"
|
|
case likeCount = "LIKE_COUNT"
|
|
}
|
|
|
|
struct AudioRankingItemResponse: Decodable, Identifiable {
|
|
let contentId: Int
|
|
let title: String
|
|
let creatorNickname: String
|
|
let rank: Int
|
|
let rankChange: Int?
|
|
let isNew: Bool
|
|
let coverImageUrl: String?
|
|
|
|
var id: Int { contentId }
|
|
}
|