namespace Brizco.Core.CoreServices.Abstracts;

public interface IAccountService : IScopedDependency
{
    public Task<AccessToken<ApplicationUserSDto, ComplexUserRoleSDto>> LoginWithPasswordAsync(string userName, string password, CancellationToken cancellationToken);
    public Task<AccessToken<ApplicationUserSDto, ComplexUserRoleSDto>> LoginWithVerifyCodeAsync(string userName, string verifyCode, CancellationToken cancellationToken);
    public Task<VerifyCodeResponseDto> GetVerifyCodeAsync(string phoneNumber);
    public Task<bool> ForgetPasswordAsync(string phoneNumber);
    public Task<bool> CheckMemberShipAsync(string phoneNumber);
    public Task<AccessToken<ApplicationUserSDto, ComplexUserRoleSDto>> CompleteComplexSignUpAsync(SignUpRequestDto requestDto, CancellationToken cancellationToken);
}