using Tiku.Application.Catalog;

namespace Tiku.Application.Content;

public interface IContentNavigationQueryService
{
    Task<CatalogList<ContentEntryCatalogItem>> GetContentEntriesAsync(
        ContentNavigationFilter filter,
        CancellationToken cancellationToken = default);

    Task<CatalogList<ContentNodeCatalogItem>> GetContentNodesAsync(
        ContentNavigationFilter filter,
        CancellationToken cancellationToken = default);

    Task<CatalogList<QuestionCollectionCatalogItem>> GetQuestionCollectionsAsync(
        ContentNavigationFilter filter,
        CancellationToken cancellationToken = default);

    Task<CatalogList<PracticeBlueprintCatalogItem>> GetPracticeBlueprintsAsync(
        ContentNavigationFilter filter,
        CancellationToken cancellationToken = default);

    Task<CatalogList<CollectionQuestionCatalogItem>> GetCollectionQuestionsAsync(
        ContentNavigationFilter filter,
        CancellationToken cancellationToken = default);
}