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 TServiceProvider : class, IAcServiceProviderBase where TUserToServiceProvider : class, IAcUserToServiceProviderBase where TProfileAddress : class, IAcAddress { public bool Logout(); public Task LogoutAsync(); public AcErrorCode Registration(string email, string password, string? phoneNumber = null); public AcErrorCode Registration(Guid userId, string email, string password, string? phoneNumber = null); public Task RegistrationAsync(string email, string password, string? phoneNumber = null); public Task RegistrationAsync(Guid userId, string email, string password, string? phoneNumber = null); }