<?xml version="1.0" ?>
<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 autowire="false" autoconfigure="false"/>

        <service id="RiccardoCatalog\Core\Catalog\AttributeExtractor"/>

        <service id="RiccardoCatalog\Core\Catalog\PropertyInstaller">
            <argument type="service" id="property_group.repository"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
        </service>

        <service id="RiccardoCatalog\Core\Catalog\CatalogPrefiller">
            <argument type="service" id="product.repository"/>
            <argument type="service" id="RiccardoCatalog\Core\Catalog\AttributeExtractor"/>
            <argument type="service" id="RiccardoCatalog\Core\Catalog\PropertyInstaller"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
        </service>

        <service id="RiccardoCatalog\Core\Catalog\NewProductSubscriber">
            <argument type="service" id="messenger.default_bus"/>
            <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
            <tag name="kernel.event_subscriber"/>
        </service>

        <service id="RiccardoCatalog\Core\Catalog\Message\PrefillProductsHandler">
            <argument type="service" id="RiccardoCatalog\Core\Catalog\CatalogPrefiller"/>
            <argument type="service" id="logger"/>
            <tag name="messenger.message_handler"/>
        </service>

        <service id="RiccardoCatalog\Core\Catalog\Message\RewriteProductsHandler">
            <argument type="service" id="RiccardoCatalog\Core\Catalog\FlavorRewriter"/>
            <argument type="service" id="RiccardoCatalog\Core\Catalog\HardwareRewriter"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
            <argument type="service" id="logger"/>
            <tag name="messenger.message_handler"/>
        </service>

        <service id="RiccardoCatalog\Core\Catalog\ContentStatusInstaller">
            <argument type="service" id="custom_field_set.repository"/>
            <argument type="service" id="product_stream.repository"/>
        </service>

        <service id="RiccardoCatalog\Core\Catalog\FlavorParser"/>

        <service id="RiccardoCatalog\Core\Catalog\FlavorContent">
            <argument type="service" id="RiccardoCatalog\Core\Catalog\FlavorParser"/>
        </service>

        <service id="RiccardoCatalog\Core\Catalog\FlavorRewriter">
            <argument type="service" id="product.repository"/>
            <argument type="service" id="RiccardoCatalog\Core\Catalog\FlavorContent"/>
            <argument type="service" id="RiccardoCatalog\Core\Catalog\FlavorParser"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
        </service>

        <service id="RiccardoCatalog\Core\Catalog\HardwareParser"/>

        <service id="RiccardoCatalog\Core\Catalog\HardwareContent">
            <argument type="service" id="RiccardoCatalog\Core\Catalog\HardwareParser"/>
            <argument type="service" id="RiccardoCatalog\Core\Catalog\FlavorContent"/>
        </service>

        <service id="RiccardoCatalog\Core\Catalog\HardwareRewriter">
            <argument type="service" id="product.repository"/>
            <argument type="service" id="property_group.repository"/>
            <argument type="service" id="RiccardoCatalog\Core\Catalog\HardwareContent"/>
            <argument type="service" id="RiccardoCatalog\Core\Catalog\HardwareParser"/>
            <argument type="service" id="RiccardoCatalog\Core\Catalog\FlavorContent"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
        </service>

        <service id="RiccardoCatalog\Command\RewriteHardwareCommand">
            <argument type="service" id="RiccardoCatalog\Core\Catalog\HardwareRewriter"/>
            <tag name="console.command"/>
        </service>

        <service id="RiccardoCatalog\Command\BuildCrossSellingCommand">
            <argument type="service" id="product.repository"/>
            <argument type="service" id="product_stream.repository"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <tag name="console.command"/>
        </service>

        <service id="RiccardoCatalog\Command\MatchSeriesCommand">
            <argument type="service" id="product.repository"/>
            <argument type="service" id="property_group.repository"/>
            <argument type="service" id="RiccardoCatalog\Core\Catalog\HardwareParser"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <tag name="console.command"/>
        </service>

        <service id="RiccardoCatalog\Command\FillComplianceCommand">
            <argument type="service" id="product.repository"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <tag name="console.command"/>
        </service>

        <service id="RiccardoCatalog\Command\FixCoversCommand">
            <argument type="service" id="product.repository"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <tag name="console.command"/>
        </service>

        <service id="RiccardoCatalog\Command\MarkDealsCommand">
            <argument type="service" id="product.repository"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <tag name="console.command"/>
        </service>

        <service id="RiccardoCatalog\Command\FixBasePriceCommand">
            <argument type="service" id="product.repository"/>
            <argument type="service" id="unit.repository"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <tag name="console.command"/>
        </service>

        <service id="RiccardoCatalog\Command\ImportJtlItemsCommand">
            <argument type="service" id="product.repository"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <tag name="console.command"/>
        </service>

        <service id="RiccardoCatalog\Command\ImportTasteCommand">
            <argument type="service" id="product.repository"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <tag name="console.command"/>
        </service>

        <service id="RiccardoCatalog\Command\RewriteFlavorsCommand">
            <argument type="service" id="RiccardoCatalog\Core\Catalog\FlavorRewriter"/>
            <tag name="console.command"/>
        </service>

        <service id="RiccardoCatalog\Command\CleanBrandNotesCommand">
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <argument type="service" id="product.repository"/>
            <tag name="console.command"/>
        </service>

        <service id="RiccardoCatalog\Core\Catalog\ProduktdarstellungInstaller">
            <argument type="service" id="custom_field_set.repository"/>
        </service>

        <service id="RiccardoCatalog\Command\InstallPropertiesCommand">
            <argument type="service" id="RiccardoCatalog\Core\Catalog\PropertyInstaller"/>
            <argument type="service" id="RiccardoCatalog\Core\Catalog\ContentStatusInstaller"/>
            <argument type="service" id="RiccardoCatalog\Core\Catalog\ProduktdarstellungInstaller"/>
            <tag name="console.command"/>
        </service>

        <service id="RiccardoCatalog\Command\PrefillCommand">
            <argument type="service" id="RiccardoCatalog\Core\Catalog\CatalogPrefiller"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <tag name="console.command"/>
        </service>
    </services>
</container>
