using Entities.Models; using System.Threading.Tasks; namespace Application.Abstractions.Interfaces { public interface IUserRepository { Task GetByIdAsync(int userId); Task GetByEmailAsync(string email); Task GetByEmailOrPhoneAsync(string emailOrPhone); Task GetByGoogleIdAsync(string googleId); Task ExistsByEmailAsync(string email); Task IsPasswordValidByEmailAsync(string email, string passwordHash); Task AddAsync(User user); Task UpdateAsync(User user); Task> GetAllAsync(); Task> SearchUsersAsync(string query); Task DeleteAsync(int userId); Task SaveChangesAsync(); } }