using Tiku.Application.Catalog;

namespace Tiku.Application.StudyContent;

public interface IStudyContentQueryService
{
    Task<CatalogList<VocabularyUnitCatalogItem>> GetVocabularyUnitsAsync(
        StudyContentFilter filter,
        CancellationToken cancellationToken = default);

    Task<CatalogList<VocabularyWordCatalogItem>> GetVocabularyWordsAsync(
        StudyContentFilter filter,
        CancellationToken cancellationToken = default);

    Task<CatalogList<HandbookSubjectCatalogItem>> GetHandbookSubjectsAsync(
        StudyContentFilter filter,
        CancellationToken cancellationToken = default);

    Task<CatalogList<HandbookChapterCatalogItem>> GetHandbookChaptersAsync(
        StudyContentFilter filter,
        CancellationToken cancellationToken = default);

    Task<CatalogList<HandbookEntryCatalogItem>> GetHandbookEntriesAsync(
        StudyContentFilter filter,
        CancellationToken cancellationToken = default);
}
