using System.Collections.Generic; using Knoks.Core.Entities; using System.Threading.Tasks; using Knoks.Core.Entities.Args; namespace Knoks.Core.Data.Interfaces { public interface IUserDao { Task<(User user, Account account)> CreateUser(CreateUserArgs args, string password, decimal freeCreditAmount); Task UserEmailExists(string email); Task UserNameExists(string userName, long? userId); Task UpdateUser(UpdateUserArgs args); Task> GetUsers(long? userId = null, byte? userType = null); Task GetUser(long userId); Task GetUserByEmail(string email); Task GetUserCredential(int apiConsumerId, string username); Task GetUserInfo(string accountWalletAddress); Task CheckPasswordResetToken(string token); Task SendPasswordResetLink(string email, string token); Task PasswordReset(string token, string newPassword); Task UpdateUserSucsess(long args); } }