feat(domain): add repository interfaces

This commit is contained in:
nk
2026-06-01 12:07:29 +03:00
parent d345cd40b8
commit aad1361043
5 changed files with 60 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
package com.radiola.domain.repository
import com.radiola.domain.model.Station
import kotlinx.coroutines.flow.Flow
interface FavoritesRepository {
fun getFavorites(): Flow<List<Station>>
suspend fun addFavorite(station: Station)
suspend fun removeFavorite(stationId: Int)
fun isFavorite(stationId: Int): Flow<Boolean>
suspend fun reorderFavorites(orderedIds: List<Int>)
}

View File

@@ -0,0 +1,10 @@
package com.radiola.domain.repository
import com.radiola.domain.model.Track
import kotlinx.coroutines.flow.Flow
interface NowPlayingRepository {
fun getNowPlaying(stationPrefix: String): Flow<Track?>
fun getAllNowPlaying(): Flow<Map<String, Track>>
suspend fun refreshNowPlaying(): Result<Unit>
}

View File

@@ -0,0 +1,17 @@
package com.radiola.domain.repository
import com.radiola.domain.model.DeeplinkService
import kotlinx.coroutines.flow.Flow
interface SettingsRepository {
fun getLastStationId(): Flow<Int?>
suspend fun setLastStationId(id: Int)
fun getSleepTimerMinutes(): Flow<Int>
suspend fun setSleepTimerMinutes(minutes: Int)
fun getEnabledDeeplinkServices(): Flow<Set<String>>
suspend fun setEnabledDeeplinkServices(serviceIds: Set<String>)
fun getEqualizerPreset(): Flow<String>
suspend fun setEqualizerPreset(preset: String)
fun isRecordingEnabled(): Flow<Boolean>
suspend fun setRecordingEnabled(enabled: Boolean)
}

View File

@@ -0,0 +1,10 @@
package com.radiola.domain.repository
import com.radiola.domain.model.Station
import kotlinx.coroutines.flow.Flow
interface StationRepository {
fun getStations(): Flow<List<Station>>
suspend fun refreshStations(): Result<Unit>
fun getStationById(id: Int): Flow<Station?>
}

View File

@@ -0,0 +1,11 @@
package com.radiola.domain.repository
import com.radiola.domain.model.Track
import kotlinx.coroutines.flow.Flow
interface TrackHistoryRepository {
fun getHistory(): Flow<List<Track>>
suspend fun addTrack(track: Track)
suspend fun removeTrack(track: Track)
suspend fun searchHistory(query: String): List<Track>
}