using System.Threading.Tasks; using Knoks.Core.Entities; using System.Collections.Generic; using Knoks.Core.Entities.Args; namespace Knoks.Core.Logic.Interfaces { public interface IUserManager : IInitializable { Task CreateUser(CreateUserArgs args); Task UpdateUser(UpdateUserArgs args); Task> GetUsers(long? userId, UserType? userType = null); Task GetUser(long userId); Task GetUserByEmail(string email); Task AuthenticateUser(int apiConsumerId, string email, string password); FileResponse GetAvatarFile(int userId); User PlatformUser { get; } Account PlatformUserAccount { get;} Task GetUserInfo(string accountWalletAddress); Task UserExists(string userName); Task UserEmailExists(string email); Task UserNameExists(string userName, long? userId); Task CheckPasswordResetToken(string token); Task SendPasswordResetLink(string email, string link); Task PasswordReset(string token, string newPassword); } }