namespace DocuMed.Core.EntityServices.Abstracts;

public interface IUserService : IScopedDependency
{
    Task<List<ApplicationUserSDto>> GetUsersAsync(int page = 0, CancellationToken cancellationToken = default);
    Task<ApplicationUserSDto> GetUserAsync(Guid userId);
    Task<ApplicationUser> CreateUserAsync(string phoneNumber);
    Task<ApplicationUser> CreateUserAsync(UserActionRequestDto request, CancellationToken cancellationToken);
    Task<bool> EditUserAsync(UserActionRequestDto request, CancellationToken cancellationToken);
    Task<bool> RemoveUserAsync(Guid userId, CancellationToken cancellationToken);


    Task<List<ApplicationRole>> GetRolesAsync(int page = 0, CancellationToken cancellationToken = default);
    Task<RoleActionRequestDto> GetRoleAsync(Guid roleId);
    Task<ApplicationRole> CreateRoleAsync(RoleActionRequestDto request);
    Task<bool> EditRoleAsync(RoleActionRequestDto request);
    Task<bool> RemoveRoleAsync(Guid roleId);
}