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

<!--

 This file is part of the Sylius package.

 (c) Paweł Jędrzejewski

 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.controller.settings.class">Sylius\Bundle\SettingsBundle\Controller\SettingsController</parameter>
        <parameter key="sylius.settings.form_factory.class">Sylius\Bundle\SettingsBundle\Form\Factory\SettingsFormFactory</parameter>
        <parameter key="sylius.settings.manager.class">Sylius\Bundle\SettingsBundle\Manager\SettingsManager</parameter>
        <parameter key="sylius.settings.schema_registry.class">Sylius\Bundle\SettingsBundle\Schema\SchemaRegistry</parameter>
    </parameters>

    <services>
        <service id="sylius.controller.settings" class="%sylius.controller.settings.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
        </service>

        <service id="sylius.settings.form_factory" class="%sylius.settings.form_factory.class%">
            <argument type="service" id="sylius.settings.schema_registry" />
            <argument type="service" id="form.factory" />
        </service>

        <service id="sylius.settings.cache" alias="doctrine_cache.providers.sylius_settings" />

        <service id="sylius.settings.manager" class="%sylius.settings.manager.class%">
            <argument type="service" id="sylius.settings.schema_registry" />
            <argument type="service" id="sylius.manager.parameter" />
            <argument type="service" id="sylius.repository.parameter" />
            <argument type="service" id="sylius.settings.cache" />
            <argument type="service" id="validator" />
        </service>

        <service id="sylius.settings.schema_registry" class="%sylius.settings.schema_registry.class%" />
    </services>

</container>
