namespace Application.Common.Services.SecurityManager; public interface ISecurityService { public Task LoginAsync( string email, string password, CancellationToken cancellationToken = default ); public Task LogoutAsync( string userId, CancellationToken cancellationToken = default ); public Task RegisterAsync( string email, string password, string confirmPassword, string firstName, string lastName, string companyName = "", CancellationToken cancellationToken = default ); public Task ConfirmEmailAsync( string email, string code, CancellationToken cancellationToken = default ); public Task ForgotPasswordAsync( string email, CancellationToken cancellationToken = default ); public Task ForgotPasswordConfirmationAsync( string email, string tempPassword, string code, CancellationToken cancellationToken = default ); public Task RefreshTokenAsync( string refreshToken, CancellationToken cancellationToken ); public Task> GetMyProfileListAsync( string userId, CancellationToken cancellationToken ); public Task UpdateMyProfileAsync( string userId, string firstName, string lastName, string companyName, CancellationToken cancellationToken ); public Task ChangePasswordAsync( string userId, string oldPassword, string newPassword, string confirmNewPassword, CancellationToken cancellationToken ); public Task> GetRoleListAsync( CancellationToken cancellationToken ); public Task> GetUserListAsync( CancellationToken cancellationToken ); public Task CreateUserAsync( string email, string password, string confirmPassword, string firstName, string lastName, bool emailConfirmed = true, bool isBlocked = false, bool isDeleted = false, string createdById = "", CancellationToken cancellationToken = default ); public Task UpdateUserAsync( string userId, string firstName, string lastName, bool emailConfirmed = true, bool isBlocked = false, bool isDeleted = false, string updatedById = "", CancellationToken cancellationToken = default ); public Task DeleteUserAsync( string userId, string deletedById = "", CancellationToken cancellationToken = default ); public Task UpdatePasswordUserAsync( string userId, string newPassword, CancellationToken cancellationToken ); public Task> GetUserRolesAsync( string userId, CancellationToken cancellationToken = default ); public Task> UpdateUserRoleAsync( string userId, string roleName, bool accessGranted, CancellationToken cancellationToken = default ); public Task ChangeAvatarAsync( string userId, string avatar, CancellationToken cancellationToken ); }