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

<!--

 This file is part of the Sylius Mollie Plugin 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"
>
    <parameters>
        <parameter key="sylius_mollie.twig.functions" type="collection">
            <parameter>sylius_mollie_render_email_template</parameter>
        </parameter>
    </parameters>

    <services>
        <service id="sylius_mollie.twig.parser.content" class="Sylius\MolliePlugin\Twig\Parser\ContentParser" public="true">
            <argument type="service" id="twig"/>
            <argument>%sylius_mollie.twig.functions%</argument>
            <argument type="service" id="translator"/>
        </service>
        <service id="Sylius\MolliePlugin\Twig\Parser\ContentParserInterface" alias="sylius_mollie.twig.parser.content" />

        <service id="sylius_mollie.twig.extension.mollie_plugin_latest_version" class="Sylius\MolliePlugin\Twig\Extension\MolliePluginLatestVersion">
            <tag name="twig.extension" />
        </service>

        <service id="sylius_mollie.twig.extension.customer_credit_cards" class="Sylius\MolliePlugin\Twig\Extension\CustomerCreditCards">
            <argument type="service" id="sylius_mollie.repository.mollie_customer"/>
            <argument type="service" id="sylius.context.customer"/>
            <tag name="twig.extension" />
        </service>

        <service id="sylius_mollie.twig.extension.apple_pay_direct_enabled" class="Sylius\MolliePlugin\Twig\Extension\ApplePayDirectEnabled">
            <argument type="service" id="sylius_mollie.apple_pay.checker.apple_pay_enabled"/>
            <tag name="twig.extension" />
        </service>

        <service id="sylius_mollie.twig.extension.divisor_provider" class="Sylius\MolliePlugin\Twig\Extension\DivisorProvider">
            <argument type="service" id="sylius_mollie.provider.divisor"/>
            <tag name="twig.extension" />
        </service>

        <service id="sylius_mollie.twig.extension.legacy_refund" class="Sylius\MolliePlugin\Twig\Extension\LegacyRefundExtension">
            <argument type="service" id="sylius_mollie.payum.checker.mollie_gateway_factory" />
            <tag name="twig.extension" />
        </service>

        <service
            id="sylius_mollie.twig.component.email_template.form"
            class="Sylius\Bundle\UiBundle\Twig\Component\ResourceFormComponent"
        >
            <argument type="service" id="sylius_mollie.repository.template_mollie_email" />
            <argument type="service" id="form.factory" />
            <argument>%sylius_mollie.model.template_mollie_email.class%</argument>
            <argument>Sylius\MolliePlugin\Form\Type\TemplateMollieEmailType</argument>

            <tag name="sylius.live_component.admin" key="sylius_mollie:admin:email_template:form" />
        </service>

        <service
            id="sylius_mollie.twig.component.order.cancel_subscription"
            class="Sylius\MolliePlugin\Twig\Component\Order\CancelSubscriptionComponent"
        >
            <argument type="service" id="sylius_mollie.repository.mollie_subscription" />
            <argument type="service" id="sylius_abstraction.state_machine" />

            <tag name="sylius.twig_component" key="sylius_mollie:shop:order:cancel_subscription" />
        </service>
    </services>
</container>
