<?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"
>
	<services>
		<defaults public="true" />

		<service id="sylius_mollie.subscription.processor.subscription" class="Sylius\MolliePlugin\Subscription\Processor\SubscriptionProcessor">
			<argument type="service" id="sylius_mollie.cloner.subscription_order"/>
			<argument type="service" id="sylius.custom_factory.payment"/>
			<argument type="service" id="sylius.repository.order"/>
			<argument type="service" id="sylius_mollie.factory.payment_details"/>
			<argument type="service" id="sylius_mollie.repository.mollie_subscription"/>
			<argument type="service" id="payum"/>
			<argument type="service" id="sylius.repository.gateway_config"/>
		</service>
		<service id="Sylius\MolliePlugin\Subscription\Processor\SubscriptionProcessorInterface" alias="sylius_mollie.subscription.processor.subscription"/>

		<service id="sylius_mollie.subscription.processor.subscription_schedule" class="Sylius\MolliePlugin\Subscription\Processor\SubscriptionScheduleProcessor">
			<argument type="service" id="sylius_mollie.repository.mollie_subscription_schedule"/>
			<argument type="service" id="sylius_mollie.subscription.generator.subscription_schedule"/>
		</service>
		<service id="Sylius\MolliePlugin\Subscription\Processor\SubscriptionScheduleProcessorInterface" alias="sylius_mollie.subscription.processor.subscription_schedule"/>

		<service id="sylius_mollie.subscription.processor.cancel_recurring_subscription" class="Sylius\MolliePlugin\Subscription\Processor\CancelRecurringSubscriptionProcessor">
			<argument type="service" id="payum"/>
		</service>
		<service id="Sylius\MolliePlugin\Subscription\Processor\CancelRecurringSubscriptionProcessorInterface" alias="sylius_mollie.subscription.processor.cancel_recurring_subscription" />

		<service id="sylius_mollie.subscription.processor.subscription_payment" class="Sylius\MolliePlugin\Subscription\Processor\SubscriptionPaymentProcessor">
			<argument type="service" id="sylius_mollie.repository.mollie_subscription"/>
			<argument type="service" id="payum"/>
		</service>
		<service id="Sylius\MolliePlugin\Subscription\Processor\SubscriptionPaymentProcessorInterface" alias="sylius_mollie.subscription.processor.subscription_payment" />
	</services>
</container>
