using Tiku.Application.PlatformAdmin;
using Tiku.Application.Security;
using Tiku.Application.Tenancy;

namespace Tiku.Infrastructure.PlatformAdmin;

internal sealed class PlatformQuestionAdministrationService(
    ICurrentAccessContext currentAccessContext,
    ITenantExecutionScope tenantExecutionScope)
    : PlatformQuestionBankServiceBase(currentAccessContext, tenantExecutionScope), IPlatformQuestionAdministrationService
{
    public Task<PlatformQuestionPage> GetQuestionsAsync(
        PlatformAdminActor actor,
        PlatformQuestionBankFilter filter,
        CancellationToken cancellationToken = default) =>
        GetQuestionsCoreAsync(actor, filter, cancellationToken);

    public Task<PlatformQuestionItem> UpsertQuestionAsync(
        PlatformAdminActor actor,
        UpsertPlatformQuestionCommand command,
        CancellationToken cancellationToken = default) =>
        UpsertQuestionCoreAsync(actor, command, cancellationToken);

    public Task<int> ArchiveQuestionsAsync(
        PlatformAdminActor actor,
        ArchivePlatformQuestionsCommand command,
        CancellationToken cancellationToken = default) =>
        ArchiveQuestionsCoreAsync(actor, command, cancellationToken);
}
