using Eshop.Application.Common;

namespace Eshop.Application.Auth;

public interface IUserAdministrationService
{
    Task<IReadOnlyList<UserWithRolesDto>> GetAllUsersWithRolesAsync(
        CancellationToken cancellationToken = default);

    Task<UserWithRolesDto?> GetUserWithRolesAsync(
        string userId,
        CancellationToken cancellationToken = default);

    Task<ServiceResult> UpdateUserRolesAsync(
        string userId,
        IReadOnlyList<string> selectedRoles,
        CancellationToken cancellationToken = default);
}
