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

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

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

@Keep
data class GetAudioContentMainItem(
    @SerializedName("contentId") val contentId: Long,
    @SerializedName("coverImageUrl") val coverImageUrl: String,
    @SerializedName("title") val title: String,
    @SerializedName("creatorId") val creatorId: Long,
    @SerializedName("creatorProfileImageUrl") val creatorProfileImageUrl: String,
    @SerializedName("creatorNickname") val creatorNickname: String,
    @SerializedName("price") val price: Int,
    @SerializedName("duration") val duration: String
)

@Keep
data class GetAudioContentRanking(
    @SerializedName("startDate") val startDate: String,
    @SerializedName("endDate") val endDate: String,
    @SerializedName("items") val items: List<GetAudioContentRankingItem>
)

@Keep
data class GetAudioContentRankingItem(
    @SerializedName("contentId") val contentId: Long,
    @SerializedName("title") val title: String,
    @SerializedName("coverImageUrl") val coverImageUrl: String,
    @SerializedName("themeStr") val themeStr: String,
    @SerializedName("price") val price: Int,
    @SerializedName("duration") val duration: String,
    @SerializedName("creatorId") val creatorId: Long,
    @SerializedName("creatorNickname") val creatorNickname: String
)

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

@Keep
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
}
