public async Task <TokenSelectRequest> Handle(OtpValidationRequest input, CancellationToken cancellationToken)
        {
            var isCodeValid = _otpService.ValidateCode(input.Code, input.Token, input.Phone);

            if (!isCodeValid)
            {
                throw new AppException(ApiResultStatusCode.ServerError, "خطایی رخ داده است.");
            }
            var user = await _userRepository.TableNoTracking
                       .SingleOrDefaultAsync(u => u.PhoneNumber.Equals(input.Phone), cancellationToken);

            if (user == null)
            {
                var isUserCreated = await SignUpUser(input.Phone);

                if (!isUserCreated)
                {
                    throw new AppException(ApiResultStatusCode.ServerError, "ثبت نام کاربر با مشکل مواجه شد!");
                }
            }

            var result = await SignInUser(input.Phone, cancellationToken);

            return(result);
        }