namespace Backend.Data;
///
/// Storage-agnostic access to . Implementations are selected by the
/// Persistence:Provider setting; see .
///
public interface IUserRepository
{
Task> GetAllAsync(CancellationToken cancellationToken = default);
Task GetByIdAsync(Guid id, CancellationToken cancellationToken = default);
Task GetByEmailAsync(string email, CancellationToken cancellationToken = default);
Task AddAsync(User user, CancellationToken cancellationToken = default);
/// The updated user, or null when no user has the given id.
Task UpdateAsync(User user, CancellationToken cancellationToken = default);
/// true when a user was removed.
Task DeleteAsync(Guid id, CancellationToken cancellationToken = default);
}