namespace Modules.User.Application.Gateways;

public interface IUserGateway
{
    public Task<Models.Account?> TryGetAccount(string email);
    public Task<Models.Account> GetAccount(string email);
    public Task<Models.User?> GetUser(Guid accountId, Guid? sessionId);
    public Task<Domain.Entities.User.User?> Get(Guid accountId);
    public Task<Guid> CreateUser(Models.Account account, Models.User user, string? avatarId);
    public Task UpdateAccount(Guid id, Models.Account account);
    public Task UpdateUser(Guid id, Models.User user, string? avatarId);
    public Task<bool> IsExists(string email);
    public Task<bool> Delete(Guid id);
}