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

import Foundation

struct GetAudioContentDetailResponse: Decodable {
    let contentId: Int
    let title: String
    let detail: String
    let coverImageUrl: String
    let contentUrl: String
    let themeStr: String
    let tag: String
    let price: Int
    let duration: String
    let releaseDate: String?
    let totalContentCount: Int?
    let remainingContentCount: Int?
    let orderSequence: Int?
    let isActivePreview: Bool
    let isAdult: Bool
    let isMosaic: Bool
    let isOnlyRental: Bool
    let existOrdered: Bool
    let orderType: OrderType?
    let remainingTime: String?
    let creatorOtherContentList: [OtherContentResponse]
    let sameThemeOtherContentList: [OtherContentResponse]
    let isCommentAvailable: Bool
    let isLike: Bool
    let likeCount: Int
    let commentList: [GetAudioContentCommentListItem]
    let commentCount: Int
    let isPin: Bool
    let isAvailablePin: Bool
    let creator: AudioContentCreator
}

enum OrderType: String, Codable {
    case RENTAL, KEEP
}

struct OtherContentResponse: Decodable {
    let contentId: Int
    let title: String
    let coverUrl: String
}

struct AudioContentCreator: Decodable {
    let creatorId: Int
    let nickname: String
    let profileImageUrl: String
    let isFollowing: Bool
    let isFollow: Bool
    let isNotify: Bool
}
