using DXPDAL.Auth; using GB5Shared.DTO.Framework.Login; namespace DXPBLL.Auth; public interface IAuthBLL { Task RegisterAsync(string fullName, string email, string? mobile, string password, LoginDTO systemLogin, CancellationToken ct); // Validates credentials and returns the caller's available contexts. If exactly one // (role, tenant-link) combination exists, Tokens is also populated (single-context fast path). Task LoginAsync(string email, string password, string? deviceInfo, LoginDTO systemLogin, CancellationToken ct); // Re-fetches the caller's contexts using an already-issued token (no password re-entry). Task> GetContextsAsync(int dxpUserId, LoginDTO systemLogin, CancellationToken ct); Task ContextSwitchAsync( int dxpUserId, int dxpUserPartyRoleId, int dxpPartyLinkId, string? deviceInfo, LoginDTO systemLogin, CancellationToken ct); Task RefreshAsync(string rawRefreshToken, string? deviceInfo, LoginDTO systemLogin, CancellationToken ct); Task LogoutAsync(string rawRefreshToken, LoginDTO systemLogin, CancellationToken ct); Task GrantUserPartyRoleAsync(UserPartyRoleDTO dto, LoginDTO systemLogin, CancellationToken ct); }