using FrameworkDAL.DTO.DiagnosticsSession; using GB5Shared.DTO.Framework.Login; namespace FrameworkBLL.DiagnosticsSession; public interface IDiagnosticsSessionBLL { Task GetActiveSessionsAsync(LoginDTO login, CancellationToken ct); Task CreateSessionAsync(DiagnosticsSessionDTO dto, LoginDTO login, CancellationToken ct); Task CloseSessionAsync(int sessionId, LoginDTO login, CancellationToken ct); Task IssueTokenAsync(SupportTokenDTO dto, LoginDTO login, CancellationToken ct); Task ValidateTokenAsync(string token, string clientIp, LoginDTO login, CancellationToken ct); Task RevokeTokenAsync(int tokenId, LoginDTO login, CancellationToken ct); /// /// Returns active sessions that match the given request context. /// Called by DiagnosticsSessionMiddleware — result is cached 30s per tenant. /// Task> GetMatchingSessionsAsync( int tenantId, int userId, string? sessionId, LoginDTO login, CancellationToken ct); }