using AyCode.Core.Consts; using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Profiles; using AyCode.Interfaces.ServiceProviders; using AyCode.Interfaces.Users; namespace AyCode.Interfaces.Logins; public interface IAcLoginServiceCommon : IAcLoginServiceBase where TUser : class, IAcUser where TProfile : class, IAcProfile where TCompany : class, IAcCompanyBase where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { public bool Logout(); public Task LogoutAsync(); public AcErrorCode Registration(string email, string password, string? phoneNumber = null, Guid? referralId = null); public AcErrorCode Registration(Guid userId, string email, string password, string? phoneNumber = null, Guid? referralId = null); public Task RegistrationAsync(string email, string password, string? phoneNumber = null, Guid? referralId = null); public Task RegistrationAsync(Guid userId, string email, string password, string? phoneNumber = null, Guid? referralId = null); public AcErrorCode ChangePassword(Guid userId, string oldPassword, string newPassword); public Task ChangePasswordAsync(Guid userId, string oldPassword, string newPassword); public AcErrorCode ForgotPassword(string email, string newPassword); public Task ForgotPasswordAsync(string email, string newPassword); }