fix(stations): жанровые чипы Record (Лето и др.) больше не пустые

Record API кладёт категории станции в поле "genre" (массив {id,name}), а
StationDto/ApiMapper читали только "tags" (у станции отсутствует) → у всех
станций Рекорда жанровые теги были пустыми, и чипы вроде «Лето» при клике
показывали пустоту. Добавлено поле genres (@SerialName genre), маплю genre+tags
в Station.tags. Раздел «Лето» теперь наполняется летними станциями Record
(Chill House, Beach Party, Tropical, Summer Lounge, Mashup и др.).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
nk
2026-06-05 20:52:21 +03:00
parent 5408bbd6c5
commit be6e1acfd8
2 changed files with 7 additions and 1 deletions

View File

@@ -17,7 +17,9 @@ object ApiMapper {
streamUrl = stream, streamUrl = stream,
coverUrl = cover, coverUrl = cover,
genre = tooltip ?: "", genre = tooltip ?: "",
tags = tags.map { it.name }, // Жанры-категории станции лежат в "genre"; "tags" обычно пуст. Берём
// оба, чтобы работали жанровые чипы Record (Лето и пр.).
tags = (genres + tags).map { it.name }.distinct(),
sortOrder = sort sortOrder = sort
) )
} }

View File

@@ -16,6 +16,10 @@ data class StationDto(
@SerialName("stream_128") val stream128: String? = null, @SerialName("stream_128") val stream128: String? = null,
@SerialName("stream_320") val stream320: String? = null, @SerialName("stream_320") val stream320: String? = null,
@SerialName("stream_hls") val streamHls: 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() @SerialName("tags") val tags: List<TagDto> = emptyList()
) )