//
// Copyright (c) alveus.dev. All rights reserved. Licensed under the MIT License.
//
using Astral.Core.Entities;
namespace Astral.Core.RepositoryInterfaces;
///
/// repository.
///
public interface IUserRepository : IGenericRepository
{
///
/// Return a count of all users.
///
/// A count of users in the table.
Task CountUsersAsync();
///
/// Find a user by their username.
///
/// The username to search for.
/// The user entity if found, or null.
Task FindByUsername(string username);
///
/// Find a user by their email address.
///
/// The email address to search for.
/// The user entity if found, or null.
Task FindByEmailAddress(string emailAddress);
}