All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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())
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy