using CashLineERP.Contracts.Internal;

namespace CashLineERP.Application.Internal;

public interface IInternalWorkbenchService
{
    InternalDashboardSummaryResponse GetDashboardSummary();

    InternalOperationalDashboardResponse GetOperationalDashboard(string environmentName, string buildVersion);

    InternalWorkflowMonitoringResponse GetWorkflowMonitoring(string environmentName, string buildVersion, int itemLimit = 10);

    InternalHypercareConsoleResponse GetHypercareConsole(string environmentName, string buildVersion);

    IReadOnlyCollection<InternalApprovalQueueItemResponse> GetApprovalQueue(string? moduleCode = null);

    IReadOnlyCollection<InternalExceptionQueueItemResponse> GetExceptionQueue(string? sourceType = null);

    IReadOnlyCollection<InternalOperationalAlertResponse> GetOperationalAlerts(string? severityCode = null, string? sourceArea = null);

    IReadOnlyCollection<InternalHypercareIncidentResponse> GetHypercareIncidents(string? severityCode = null, string? sourceArea = null);

    IReadOnlyCollection<InternalHypercareRunbookResponse> GetHypercareRunbooks(string? categoryCode = null);

    InternalHypercareRunbookDetailResponse? GetHypercareRunbook(string runbookCode);
}
