package com.radiola.domain.model import androidx.compose.runtime.Immutable // @Immutable: модели read-only (заполняются один раз из БД/маппера и не мутируются). // Список tags/qualities иначе делает класс «нестабильным» для Compose → лишние // рекомпозиции списков станций. Помечаем явно — компилятор сможет пропускать. @Immutable data class Station( val id: Int, val name: String, val prefix: String, val streamUrl: String, val coverUrl: String, val genre: String, val tags: List, val sortOrder: Int, val source: String = "record", // Доступные качества потока (битрейты). Пусто или один элемент — переключателя нет. val qualities: List = emptyList() ) /** Один вариант качества потока станции. */ @Immutable data class StreamQuality( val bitrate: Int, // kbps val url: String, val type: String // "aac" | "mp3" ) { /** Человекочитаемая ступень качества по битрейту. */ val tierLabel: String get() = when { bitrate >= 256 -> "Максимальное" bitrate >= 128 -> "Высокое" bitrate >= 96 -> "Среднее" bitrate >= 64 -> "Экономно" else -> "Минимальное" } }