public async Task <CheckoutResponse> Handle(CheckoutQuery request, CancellationToken cancellationToken)
        {
            var reservation = await _reservation.GetById(request.Id, cancellationToken)
                              ?? throw new NotFoundException("Reservation Id", request.Id);

            if (reservation.CreatedById != _currentUser.User.Id)
            {
                throw new BadRequestException("This reservation is not yours");
            }

            var _params = ConstructParametersMap(reservation);

            return(new CheckoutResponse
            {
                Url = _checkout.GenerateCheckout(_params, _configuration.GetValue <string>("Key:SafeCharge:Secret"))
            });
        }