feat(charts): раздел «Чарты» (клиент) + детальная страница трека с графиком
- вкладка «Чарты» в навигации; экран: периоды (День/Неделя/Месяц/Всё), ранжированный список треков (ранг, обложка, проигрывания, тренд) - детальная карточка трека: метрики, график популярности (Canvas), лайк, кнопки музыкальных сервисов, кнопка «Текст песни» (ссылка на лицензированный Musixmatch — полный текст не встраиваем, авторское право) - ChartsRepository/LyricsRepository + эндпоинты charts/* в RadiolaApi (DTO) - превью-данные пока бэкенд не отдаёт charts (помечено TODO)
This commit is contained in:
26
app/src/main/java/com/radiola/domain/model/ChartEntry.kt
Normal file
26
app/src/main/java/com/radiola/domain/model/ChartEntry.kt
Normal file
@@ -0,0 +1,26 @@
|
||||
package com.radiola.domain.model
|
||||
|
||||
/** Период чарта, выбираемый пользователем. */
|
||||
enum class ChartPeriod(val apiValue: String, val label: String) {
|
||||
DAY("day", "День"),
|
||||
WEEK("week", "Неделя"),
|
||||
MONTH("month", "Месяц"),
|
||||
ALL("all", "Всё время")
|
||||
}
|
||||
|
||||
/** Направление движения позиции в чарте. */
|
||||
enum class ChartTrend { UP, DOWN, NEW, SAME }
|
||||
|
||||
/** Одна позиция в чарте. */
|
||||
data class ChartEntry(
|
||||
val rank: Int,
|
||||
val trackId: String,
|
||||
val artist: String,
|
||||
val song: String,
|
||||
val coverUrl: String?,
|
||||
val plays: Int,
|
||||
val stationsCount: Int,
|
||||
val likes: Int,
|
||||
val prevRank: Int?,
|
||||
val trend: ChartTrend
|
||||
)
|
||||
Reference in New Issue
Block a user