77 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
//
 | 
						|
//  GetAudioContentMainResponse.swift
 | 
						|
//  SodaLive
 | 
						|
//
 | 
						|
//  Created by klaus on 2023/08/11.
 | 
						|
//
 | 
						|
 | 
						|
import Foundation
 | 
						|
 | 
						|
struct GetAudioContentMainResponse: Decodable {
 | 
						|
    let newContentUploadCreatorList: [ContentCreatorResponse]
 | 
						|
    let bannerList: [GetAudioContentBannerResponse]
 | 
						|
    let orderList: [GetAudioContentMainItem]
 | 
						|
    let themeList: [String]
 | 
						|
    let newContentList: [GetAudioContentMainItem]
 | 
						|
    let curationList: [GetAudioContentCurationResponse]
 | 
						|
    let contentRankingSortTypeList: [String]
 | 
						|
    let contentRanking: GetAudioContentRanking
 | 
						|
}
 | 
						|
 | 
						|
struct GetAudioContentRanking: Decodable {
 | 
						|
    let startDate: String
 | 
						|
    let endDate: String
 | 
						|
    let items: [GetAudioContentRankingItem]
 | 
						|
}
 | 
						|
 | 
						|
struct GetAudioContentRankingItem: Decodable {
 | 
						|
    let contentId: Int
 | 
						|
    let title: String
 | 
						|
    let coverImageUrl: String
 | 
						|
    let themeStr: String
 | 
						|
    let price: Int
 | 
						|
    let duration: String
 | 
						|
    let creatorId: Int
 | 
						|
    let creatorNickname: String
 | 
						|
    let isPointAvailable: Bool
 | 
						|
    let creatorProfileImageUrl: String
 | 
						|
}
 | 
						|
 | 
						|
struct ContentCreatorResponse: Decodable {
 | 
						|
    let creatorId: Int
 | 
						|
    let creatorNickname: String
 | 
						|
    let creatorProfileImageUrl: String
 | 
						|
}
 | 
						|
 | 
						|
struct GetAudioContentMainItem: Decodable {
 | 
						|
    let contentId: Int
 | 
						|
    let coverImageUrl: String
 | 
						|
    let title: String
 | 
						|
    let creatorId: Int
 | 
						|
    let creatorProfileImageUrl: String
 | 
						|
    let creatorNickname: String
 | 
						|
    let price: Int
 | 
						|
    let duration: String
 | 
						|
    let isPointAvailable: Bool
 | 
						|
}
 | 
						|
 | 
						|
struct GetAudioContentCurationResponse: Decodable {
 | 
						|
    let curationId: Int
 | 
						|
    let title: String
 | 
						|
    let description: String
 | 
						|
    let contents: [GetAudioContentMainItem]
 | 
						|
}
 | 
						|
 | 
						|
struct GetAudioContentBannerResponse: Decodable {
 | 
						|
    let type: AudioContentBannerType
 | 
						|
    let thumbnailImageUrl: String
 | 
						|
    let eventItem: EventItem?
 | 
						|
    let creatorId: Int?
 | 
						|
    let seriesId: Int?
 | 
						|
    let link: String?
 | 
						|
}
 | 
						|
 | 
						|
enum AudioContentBannerType: String, Decodable {
 | 
						|
    case EVENT, CREATOR, LINK, SERIES
 | 
						|
}
 |