using FastBlog.Core.Models;
using FastBlog.Core.Models.Users;

namespace FastBlog.Core.Abstractions.Repositories.Users;

public interface IUserRepository
{
    Task<User?> Get(int id);
    Task<UserPassword?> GetWithPassword(int id);
    Task<UserPassword?> GetByName(string username);
    Task<bool> SetPassword(int id, string newPassword);
    Task<PagedResponse<User>> GetUsers(PagedRequest pagedRequest);
    Task<User> CreateUser(NewUser newUser);
    Task<bool> DeleteUser(int userId);
}