using Managing.Application.Abstractions.Models; using Managing.Application.Abstractions.Shared; using Managing.Domain.Users; using static Managing.Common.Enums; namespace Managing.Application.Abstractions.Services; public interface IUserService { Task Authenticate(string name, string address, string message, string signature, string? ownerWalletAddress = null); Task GetUserByAddressAsync(string address, bool useCache = true); Task UpdateAgentName(User user, string agentName); Task UpdateAvatarUrl(User user, string avatarUrl); Task UpdateTelegramChannel(User user, string telegramChannel); Task UpdateDefaultLlmProvider(User user, LlmProvider defaultLlmProvider); Task UpdateUserSettings(User user, UserSettingsDto settings); Task GetUserByName(string name); Task GetUserByAgentName(string agentName); Task GetUserByIdAsync(int userId); Task> GetAllUsersAsync(); Task<(IEnumerable Users, int TotalCount)> GetUsersPaginatedAsync(int page, int pageSize, UserSortableColumn sortBy, string sortOrder, UsersFilter filter); }