using Tiku.Application.Catalog;

namespace Tiku.Application.QuestionBanks;

public interface IQuestionBankQueryService
{
    Task<CatalogList<QuestionBankCatalogItem>> GetQuestionBanksAsync(
        QuestionBankFilter filter,
        CancellationToken cancellationToken = default);

    Task<CatalogList<QuestionCatalogItem>> GetQuestionsAsync(
        QuestionBankFilter filter,
        CancellationToken cancellationToken = default);

    Task<QuestionCatalogItem> GetQuestionAsync(
        QuestionBankFilter filter,
        CancellationToken cancellationToken = default);

    Task<CatalogList<QuestionVersionCatalogItem>> GetQuestionVersionsAsync(
        QuestionBankFilter filter,
        CancellationToken cancellationToken = default);
}