package com.radiola.data.remote import com.radiola.data.remote.dto.NowPlayingItemDto import com.radiola.data.remote.dto.StationDto import com.radiola.domain.model.Station import com.radiola.domain.model.Track object ApiMapper { fun StationDto.toDomain(): Station { val cover = iconFillColored ?: bgImageMobile ?: bgImage ?: "" // ВНИМАНИЕ: поле stream_128 у части станций Record указывает на мёртвый // маунт {prefix}64.aacp (404) — звука нет, хотя обложка/трек есть. Поле // stream_320 (= {prefix}96.aacp) живо у ВСЕХ станций. Поэтому 320 первым. val stream = stream320 ?: stream128 ?: streamHls ?: "https://air.radiorecord.ru:805/${prefix}_128" return Station( id = id, name = name, prefix = prefix, streamUrl = stream, coverUrl = cover, genre = tooltip ?: "", // Жанры-категории станции лежат в "genre"; "tags" обычно пуст. Берём // оба, чтобы работали жанровые чипы Record (Лето и пр.). tags = (genres + tags).map { it.name }.distinct(), sortOrder = sort ) } fun NowPlayingItemDto.toDomain(): Track { return Track( artist = track.artist, song = track.song, coverUrl = track.image600 ?: track.image100, stationName = "" ) } }