using ApplicationLayer.Services.Users.Requests;
using Domains.Users;
namespace ApplicationLayer.Services.Users;
/// user accounts service
public interface IUsersService
{
    /// Returns all user accounts with role of approving authority
    /// Cancellation token
    Task> GetAuthoritiesAccountsAsync(CancellationToken cancellationToken);
    /// Changes authentication data for an account
    ///  Request object with identifier of user and new authentication data
    /// Cancellation token
    Task ChangeAccountAuthDataAsync(ChangeUserAuthDataRequest request, CancellationToken cancellationToken);
    /// Removes user account
    /// Identifier of account
    /// Cancellation token
    Task RemoveUserAccount(Guid userId, CancellationToken cancellationToken);
}