using Managing.Domain.Users;

namespace Managing.Application.Abstractions.Services;

public interface IUserService
{
    Task<User> Authenticate(string name, string address, string message, string signature);
    Task<User> GetUserByAddressAsync(string address, bool useCache = true);
    Task<User> UpdateAgentName(User user, string agentName);
    Task<User> UpdateAvatarUrl(User user, string avatarUrl);
    Task<User> UpdateTelegramChannel(User user, string telegramChannel);
    Task<User> GetUserByName(string name);
    Task<User> GetUserByAgentName(string agentName);
    Task<User> GetUserByIdAsync(int userId);
    Task<IEnumerable<User>> GetAllUsersAsync();
}