using System.Text.Json.Nodes;

namespace Eis.Application.Administration;

public sealed record AdminEndpointResult(int StatusCode, JsonObject Body);

public interface IAdminReadService
{
    Task<AdminEndpointResult> GetContextAsync(string sessionToken, CancellationToken cancellationToken);

    Task<AdminEndpointResult> GetDashboardAsync(string sessionToken, CancellationToken cancellationToken);

    Task<AdminEndpointResult> GetSchoolsAsync(string sessionToken, CancellationToken cancellationToken);

    Task<AdminEndpointResult> GetSchoolOrganizationAsync(string sessionToken, CancellationToken cancellationToken);

    Task<AdminEndpointResult> GetAdminsAsync(string sessionToken, CancellationToken cancellationToken);

    Task<AdminEndpointResult> GetExamsAsync(string sessionToken, CancellationToken cancellationToken);
}
