package kr.co.vividnext.sodalive.audio_content.main

import com.google.gson.annotations.SerializedName
import kr.co.vividnext.sodalive.settings.event.EventItem

data class GetAudioContentMainResponse(
    @SerializedName("newContentUploadCreatorList")
    val newContentUploadCreatorList: List<GetNewContentUploadCreator>,
    @SerializedName("bannerList") val bannerList: List<GetAudioContentBannerResponse>,
    @SerializedName("orderList") val orderList: List<GetAudioContentMainItem>,
    @SerializedName("themeList") val themeList: List<String>,
    @SerializedName("newContentList") val newContentList: List<GetAudioContentMainItem>,
    @SerializedName("curationList") val curationList: List<GetAudioContentCurationResponse>
)

data class GetNewContentUploadCreator(
    @SerializedName("creatorId") val creatorId: Long,
    @SerializedName("creatorNickname") val creatorNickname: String,
    @SerializedName("creatorProfileImageUrl") val creatorProfileImageUrl: String
)

data class GetAudioContentMainItem(
    @SerializedName("contentId") val contentId: Long,
    @SerializedName("coverImageUrl") val coverImageUrl: String,
    @SerializedName("title") val title: String,
    @SerializedName("isAdult") val isAdult: Boolean,
    @SerializedName("creatorId") val creatorId: Long,
    @SerializedName("creatorProfileImageUrl") val creatorProfileImageUrl: String,
    @SerializedName("creatorNickname") val creatorNickname: String
)

data class GetAudioContentCurationResponse(
    @SerializedName("title") val title: String,
    @SerializedName("description") val description: String,
    @SerializedName("audioContents") val audioContents: List<GetAudioContentMainItem>
)

data class GetAudioContentBannerResponse(
    @SerializedName("type") val type: AudioContentBannerType,
    @SerializedName("thumbnailImageUrl") val thumbnailImageUrl: String,
    @SerializedName("eventItem") val eventItem: EventItem?,
    @SerializedName("creatorId") val creatorId: Long?,
    @SerializedName("link") val link: String?
)

enum class AudioContentBannerType {
    @SerializedName("EVENT")
    EVENT,

    @SerializedName("CREATOR")
    CREATOR,

    @SerializedName("LINK")
    LINK
}
