<!--
  ~ This file is part of the Fidry\AliceDataFixtures package.
  ~
  ~ (c) Théo FIDRY <theo.fidry@gmail.com>
  ~
  ~ 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>

        <!-- Loaders -->

        <service id="fidry_alice_data_fixtures.loader.doctrine_mongodb"
                 alias="fidry_alice_data_fixtures.doctrine_mongodb.purger_loader"
                 public="true" />

        <service id="fidry_alice_data_fixtures.doctrine_mongodb.loader"
                 alias="fidry_alice_data_fixtures.loader.doctrine_mongodb">
            <!-- Deprecated (see DeprecateServicesPass) -->
        </service>

        <service id="fidry_alice_data_fixtures.doctrine_mongodb.purger_loader"
                 class="Fidry\AliceDataFixtures\Loader\PurgerLoader"
                 lazy="true" >
            <argument type="service" id="fidry_alice_data_fixtures.doctrine_mongodb.persister_loader" />
            <argument type="service" id="fidry_alice_data_fixtures.persistence.purger_factory.doctrine_mongodb" />
            <argument type="string">%fidry_alice_data_fixtures.default_purge_mode%</argument>
        </service>

        <service id="fidry_alice_data_fixtures.doctrine_mongodb.persister_loader"
                 class="Fidry\AliceDataFixtures\Loader\PersisterLoader"
                 lazy="true" >
            <argument type="service" id="fidry_alice_data_fixtures.loader.simple" />
            <argument type="service" id="fidry_alice_data_fixtures.persistence.persister.doctrine_mongodb" />
            <argument type="service" id="logger" on-invalid="ignore"/>
            <!-- Processors are injected via a Compiler pass -->
        </service>


        <!-- Purger Factory -->

        <service id="fidry_alice_data_fixtures.persistence.purger_factory.doctrine_mongodb"
                 alias="fidry_alice_data_fixtures.persistence.doctrine_mongodb.purger.purger_factory"
                 public="true" />

        <service id="fidry_alice_data_fixtures.persistence.doctrine_mongodb.purger.purger_factory"
                 class="Fidry\AliceDataFixtures\Bridge\Doctrine\Purger\Purger"
                 lazy="true">
            <argument type="service" id="doctrine_mongodb.odm.document_manager" />
        </service>

        <service id="fidry_alice_data_fixtures.persistence.purger.doctrine_mongodb.odm_purger"
                 alias="fidry_alice_data_fixtures.persistence.doctrine_mongodb.purger.purger_factory">
            <!-- Deprecated (see DeprecateServicesPass) -->
        </service>


        <!-- Persisters -->

        <service id="fidry_alice_data_fixtures.persistence.persister.doctrine_mongodb"
                 alias="fidry_alice_data_fixtures.persistence.persister.doctrine_mongodb.object_manager_persister"
                 public="true" />

        <service id="fidry_alice_data_fixtures.persistence.persister.doctrine_mongodb.object_manager_persister"
                 class="Fidry\AliceDataFixtures\Bridge\Doctrine\Persister\ObjectManagerPersister"
                 lazy="true">
            <argument type="service" id="doctrine_mongodb.odm.document_manager" />
        </service>

    </services>

</container>
