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 GetUserDetails(string userId, bool includeAgent = false); Task 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 GetMyProfile(); Task VerifyUserNameExisting(string userName); Task VerifyEmailExisting(string email); Task VerifyPhoneExisting(string phone, string regionCode); Task SendVerificationCodeResetPasswordNoLogin(User user); Task SendVerificationCodeResetPasswordLogin(); 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 userId, string conversationId); Task RemoveDashboardConversation(string userId, string conversationId); Task UpdateDashboardConversation(string userId, DashboardConversation dashConv); Task GetDashboard(string userId); }