using BotSharp.Abstraction.Repositories.Filters; using BotSharp.Abstraction.Users.Models; using BotSharp.OpenAPI.ViewModels.Users; namespace BotSharp.Abstraction.Users; public interface IUserService { Task GetUser(string id); Task> GetUsers(UserFilter filter); Task> SearchLoginUsers(User filter); Task GetUserDetails(string userId, bool includeAgent = false); Task<(bool, User?)> IsAdminUser(string userId); Task GetUserAuthorizations(IEnumerable? agentIds = null); Task UpdateUser(User user, bool isUpdateUserAgents = false); Task CreateUser(User user); Task ActiveUser(UserActivationModel model); Task GetAffiliateToken(string authorization); Task GetAdminToken(string authorization); Task GetToken(string authorization); Task CreateTokenByUser(User user); Task RenewToken(); Task GetMyProfile(); Task VerifyUserNameExisting(string userName); Task VerifyEmailExisting(string email); Task VerifyPhoneExisting(string phone, string regionCode); Task ResetVerificationCode(User user); Task SendVerificationCodeNoLogin(User user); Task SendVerificationCodeLogin(); Task SetUserPassword(User user); Task ResetUserPassword(User user); Task ModifyUserEmail(string email); Task ModifyUserPhone(string phone, string regionCode); Task UpdatePassword(string newPassword, string verificationCode); Task GetUserTokenExpires(); Task UpdateUsersIsDisable(List userIds, bool isDisable); Task AddDashboardConversation(string conversationId); Task RemoveDashboardConversation(string conversationId); Task UpdateDashboardConversation(DashboardConversation dashConv); Task GetDashboard(); }