commonMain.in.shabinder.soundbound.providers.QueryableProvider.kt Maven / Gradle / Ivy
package `in`.shabinder.soundbound.providers
import app.cash.zipline.ZiplineService
import `in`.shabinder.soundbound.models.QueryParams
import `in`.shabinder.soundbound.models.SearchItem
import `in`.shabinder.soundbound.models.SongModel
import `in`.shabinder.soundbound.models.SongModels
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flowOf
interface QueryableProvider : Provider, ZiplineService {
val isISRCSupported: Boolean get() = false
suspend fun searchSongModels(queryParams: QueryParams): SongModels
// this is without auto-completions
suspend fun searchItems(queryParams: QueryParams): List
fun loadItems(queryParams: QueryParams): Flow>
/* Get Related Media Items to following model, mostly used for `endless playback` */
suspend fun relatedSongs(queryParams: QueryParams): SongModels = SongModels(emptyList())
// only auto-completions
suspend fun searchSuggestionItems(queryParams: QueryParams): List = emptyList()
fun loadSuggestionItems(queryParams: QueryParams): Flow> = flowOf(emptyList())
}