using ApplicationLayer.InfrastructureServicesInterfaces;
using Domains.Users;
namespace ApplicationLayer.Services.AuthServices.NeededServices
{
    /// Repository pattern for 
    public interface IUsersRepository : IGenericRepository
    {
        /// Find  by email
        /// 's email
        /// Cancellation token
        /// User or null if not found
        Task FindByEmailAsync(string email, CancellationToken cancellationToken);
        /// Returns all accounts with specific role
        /// role
        /// cancellation token
        /// list of accounts
        Task> GetAllOfRoleAsync(Role role, CancellationToken cancellationToken);
    }
}