<?xml version="1.0" encoding="UTF-8"?>

<!--

 This file is part of the Sylius package.

 (c) Sylius Sp. z o.o.

 For the full copyright and license information, please view the LICENSE
 file that was distributed with this source code.

-->

<container
    xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"
>
    <services>
        <service id="sylius_shop.provider.order_pay.payment_request_pay_url" parent="sylius.provider.order_pay.payment_request_pay_url">
            <argument type="string">%sylius_shop.order_pay.payment_request_pay_route%</argument>
            <argument type="string">%sylius_shop.order_pay.payment_request_pay_route_parameters%</argument>
        </service>

        <service id="sylius_shop.provider.order_pay.after_pay_url" parent="sylius.provider.order_pay.after_pay_url">
            <argument type="string">%sylius_shop.order_pay.after_pay_route%</argument>
            <argument type="string">%sylius_shop.order_pay.after_pay_route_parameters%</argument>
        </service>

        <service id="sylius_shop.provider.order_pay.final_url" parent="sylius.provider.order_pay.final_url">
            <argument type="string">%sylius_shop.order_pay.final_route%</argument>
            <argument type="string">%sylius_shop.order_pay.final_route_parameters%</argument>
            <argument type="string">%sylius_shop.order_pay.retry_route%</argument>
            <argument type="string">%sylius_shop.order_pay.retry_route_parameters%</argument>
        </service>

        <!-- Pay -->

        <service id="sylius_shop.provider.order_pay.pay_response.no_payment" parent="sylius.provider.order_pay.pay_response.no_payment">
            <argument type="service" id="sylius_shop.resolver.order_pay.payment_to_pay" />
            <argument type="service" id="sylius_shop.provider.order_pay.final_url" />
            <tag name="sylius_shop.provider.order_pay.pay_response" priority="-100" />
        </service>

        <service id="sylius_shop.provider.order_pay.pay_response.payment_request" parent="sylius.provider.order_pay.pay_response.payment_request">
            <argument type="service" id="sylius_shop.resolver.order_pay.payment_to_pay" />
            <argument type="service" id="sylius_shop.provider.order_pay.payment_request_pay_url" />
            <tag name="sylius_shop.provider.order_pay.pay_response" priority="-300" />
        </service>

        <!-- After pay -->

        <service id="sylius_shop.provider.order_pay.after_pay_response.payment_request" parent="sylius.provider.order_pay.after_pay_response.payment_request">
            <argument type="service" id="sylius_shop.handler.order_pay.payment_state_flash" />
            <argument type="service" id="sylius_shop.provider.order_pay.final_url" />
            <tag name="sylius_shop.provider.order_pay.after_pay_response" priority="-100" />
        </service>
    </services>
</container>
