package com.pixelized.biblib.repository.search

import com.pixelized.biblib.model.book.*
import com.pixelized.biblib.model.search.SortType
import com.pixelized.biblib.model.search.SortValue

interface ISearchRepository {

    fun searchBooks(
        search: String?,
        isNew: Boolean?,
        authorId: Int?,
        seriesId: Int?,
        genreId: Int?,
        languageId: Int?,
        sortBy: Map<SortType, SortValue?>,
        limit: Int,
        offset: Int,
    ): List<Book>

    fun searchAuthor(
        search: String?,
        limit: Int,
        offset: Int,
    ): List<Author>

    fun searchGenre(
        search: String?,
        limit: Int,
        offset: Int,
    ): List<Genre>

    fun searchSeries(
        search: String?,
        limit: Int,
        offset: Int,
    ): List<Series>

    fun searchLanguage(
        search: String?,
        limit: Int,
        offset: Int,
    ): List<Language>
}