//
//  GetAudioContentMainResponse.swift
//  SodaLive
//
//  Created by klaus on 2023/08/11.
//

import Foundation

struct GetAudioContentMainResponse: Decodable {
    let newContentUploadCreatorList: [GetNewContentUploadCreator]
    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
}

struct GetNewContentUploadCreator: 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
}

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 link: String?
}

enum AudioContentBannerType: String, Decodable {
    case EVENT, CREATOR, LINK
}