package com.radiola.data.remote.dto

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class StationDto(
    @SerialName("id") val id: Int,
    @SerialName("title") val name: String,
    @SerialName("prefix") val prefix: String,
    @SerialName("tooltip") val tooltip: String? = null,
    @SerialName("sort") val sort: Int = 0,
    @SerialName("bg_image") val bgImage: String? = null,
    @SerialName("bg_image_mobile") val bgImageMobile: String? = null,
    @SerialName("icon_fill_colored") val iconFillColored: String? = null,
    @SerialName("stream_128") val stream128: String? = null,
    @SerialName("stream_320") val stream320: String? = null,
    @SerialName("stream_hls") val streamHls: String? = null,
    // Record API кладёт жанры-категории станции в поле "genre" (массив {id,name}),
    // а не в "tags". Раньше читали только "tags" (его у станции нет) — поэтому
    // жанровые чипы Record (Лето, House, …) были пустыми. Берём оба.
    @SerialName("genre") val genres: List<TagDto> = emptyList(),
    @SerialName("tags") val tags: List<TagDto> = emptyList()
)

@Serializable
data class TagDto(
    @SerialName("id") val id: Int,
    @SerialName("name") val name: String
)

@Serializable
data class StationsResult(
    @SerialName("stations") val stations: List<StationDto> = emptyList(),
    @SerialName("tags") val tags: List<TagDto> = emptyList()
)

@Serializable
data class StationsResponse(
    @SerialName("result") val result: StationsResult
)
