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 TUser? Login(string email, string password, out string accessToken); public Task LoginAsync(string email, string password); public bool Logout(); public Task LogoutAsync(); public TUser? Registration(string email, string password, string? phoneNumber = null); public TUser? 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); }