<?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>
        <!-- Shopware ConnectionFactory -->
        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Connection\ConnectionFactory">
            <tag name="kernel.reset" method="reset"/>
        </service>

        <!-- Shopware Profile Gateways -->
        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\ShopwareLocalGateway">
            <argument type="service" id="SwagMigrationAssistant\Migration\Gateway\Reader\ReaderRegistry"/>
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\EnvironmentReader"/>
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\TableReader"/>
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Connection\ConnectionFactory"/>
            <argument type="service" id="currency.repository"/>
            <argument type="service" id="language.repository"/>
            <tag name="shopware.migration.gateway" />
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\ShopwareApiGateway">
            <argument type="service" id="SwagMigrationAssistant\Migration\Gateway\Reader\ReaderRegistry"/>
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\EnvironmentReader"/>
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\TableReader"/>
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\TableCountReader"/>
            <argument type="service" id="currency.repository"/>
            <argument type="service" id="language.repository"/>
            <tag name="shopware.migration.gateway"/>
        </service>

        <!-- Shopware MediaHandler -->
        <service id="SwagMigrationAssistant\Profile\Shopware\Media\BaseMediaService" abstract="true" />

        <service id="SwagMigrationAssistant\Profile\Shopware\Media\HttpMediaDownloadService" parent="SwagMigrationAssistant\Migration\Media\Processor\HttpDownloadServiceBase">
            <tag name="shopware.migration.media_file_processor"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Media\LocalMediaProcessor" parent="SwagMigrationAssistant\Profile\Shopware\Media\BaseMediaService">
            <argument type="service" id="swag_migration_media_file.repository"/>
            <argument type="service" id="Shopware\Core\Content\Media\File\FileSaver"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Logging\LoggingService"/>
            <argument type="tagged_iterator" tag="shopware.migration.media_strategy_resolver"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <tag name="shopware.migration.media_file_processor"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Media\Strategy\Md5StrategyResolver">
            <tag name="shopware.migration.media_strategy_resolver"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Media\Strategy\PlainStrategyResolver">
            <tag name="shopware.migration.media_strategy_resolver"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Media\HttpOrderDocumentDownloadService" parent="SwagMigrationAssistant\Migration\Media\Processor\HttpDownloadServiceBase">
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Connection\ConnectionFactory"/>
            <tag name="shopware.migration.media_file_processor"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Media\LocalOrderDocumentProcessor" parent="SwagMigrationAssistant\Profile\Shopware\Media\BaseMediaService">
            <argument type="service" id="swag_migration_media_file.repository"/>
            <argument type="service" id="Shopware\Core\Content\Media\MediaService"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Logging\LoggingService"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <tag name="shopware.migration.media_file_processor"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Media\LocalProductDownloadProcessor" parent="SwagMigrationAssistant\Profile\Shopware\Media\BaseMediaService">
            <argument type="service" id="swag_migration_media_file.repository"/>
            <argument type="service" id="Shopware\Core\Content\Media\MediaService"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Logging\LoggingService"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <tag name="shopware.migration.media_file_processor"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Media\HttpEsdFileDownloadService" parent="SwagMigrationAssistant\Migration\Media\Processor\HttpDownloadServiceBase">
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Connection\ConnectionFactory"/>
            <tag name="shopware.migration.media_file_processor"/>
        </service>

        <!-- Shopware Converter Base classes -->
        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter"
                 parent="SwagMigrationAssistant\Migration\Converter\Converter"
                 abstract="true"
        ></service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\AttributeConverter"
                 parent="SwagMigrationAssistant\Migration\Converter\Converter" abstract="true"/>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\ProductAttributeConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\AttributeConverter" abstract="true"/>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\ProductPriceAttributeConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\AttributeConverter" abstract="true"/>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\ManufacturerAttributeConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\AttributeConverter" abstract="true"/>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\CustomerAttributeConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\AttributeConverter" abstract="true"/>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\OrderAttributeConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\AttributeConverter" abstract="true"/>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\OrderDocumentAttributeConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\AttributeConverter" abstract="true"/>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\ProductConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Media\MediaFileService"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\TaxLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\MediaDefaultFolderLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\DeliveryTimeLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\ProductOptionRelationConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\ProductPropertyRelationConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\TranslationConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\CategoryAttributeConverter" abstract="true"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\AttributeConverter">
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\CategoryConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Media\MediaFileService"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LowestRootCategoryLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\DefaultCmsPageLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\MediaFolderConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\MediaDefaultFolderLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\MediaThumbnailSizeLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\MediaConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Media\MediaFileService"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\CustomerConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="validator"/>
            <argument type="service" id="sales_channel.repository"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\CountryLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\CountryStateLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\OrderConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="Shopware\Core\Checkout\Cart\Tax\TaxCalculator"/>
            <argument type="service" id="sales_channel.repository"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\CountryLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\CurrencyLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\CountryStateLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\OrderDocumentConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Media\MediaFileService"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\MediaDefaultFolderLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\DocumentTypeLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\CustomerGroupAttributeConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\AttributeConverter" abstract="true"/>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\CustomerGroupConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\CustomerWishlistConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true"/>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\PropertyGroupOptionConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Media\MediaFileService"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\NumberRangeConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="number_range_type.repository"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\NumberRangeLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\CurrencyConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\CurrencyLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\LanguageConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LocaleLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\SalesChannelConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="payment_method.repository"/>
            <argument type="service" id="shipping_method.repository"/>
            <argument type="service" id="country.repository"/>
            <argument type="service" id="sales_channel.repository"/>
            <argument type="service" id="swag_language_pack_language.repository" on-invalid="null"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\CurrencyLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\NewsletterRecipientConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\ShippingMethodConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\CountryLookup"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\ProductReviewConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\SeoUrlConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Migration\Mapping\Lookup\LanguageLookup"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\CrossSellingConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true"/>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\MainVariantRelationConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true"/>

        <service id="SwagMigrationAssistant\Profile\Shopware\Converter\PromotionConverter"
                 parent="SwagMigrationAssistant\Profile\Shopware\Converter\ShopwareConverter" abstract="true">
            <argument type="service" id="sales_channel.repository"/>
        </service>

        <!-- Shopware Reader -->
        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Connection\ConnectionFactory"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\EnvironmentReader">
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Connection\ConnectionFactory"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\TableReader">
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Connection\ConnectionFactory"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\TableCountReader">
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Connection\ConnectionFactory"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Logging\LoggingService"/>
        </service>

        <!-- API reader -->
        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\CategoryAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\CategoryReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\CurrencyReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\CustomerAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\CustomerGroupAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\CustomerGroupReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\CustomerReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\LanguageReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ManufacturerAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\MediaAlbumReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\MediaReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\NewsletterRecipientReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\NumberRangeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\OrderAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\OrderDocumentAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\OrderDocumentReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\OrderReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ProductAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ProductPriceAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ProductReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ProductReviewReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\PromotionReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\PropertyGroupOptionReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\SalesChannelReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\SeoUrlReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ShippingMethodReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\TranslationReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ProductOptionRelationReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ProductPropertyRelationReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\CrossSellingReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\MainVariantRelationReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\ApiReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Api\Reader\CustomerWishlistReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <!-- Local reader -->
        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader" abstract="true">
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Connection\ConnectionFactory"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\EnvironmentReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Connection\ConnectionFactory"/>

            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\TableReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <argument type="service" id="SwagMigrationAssistant\Profile\Shopware\Gateway\Connection\ConnectionFactory"/>

            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AttributeReader" abstract="true"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\CategoryAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AttributeReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\CategoryReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\CurrencyReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\NewsletterRecipientReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\CustomerGroupReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\CustomerGroupAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AttributeReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\CustomerReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\CustomerAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AttributeReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\LanguageReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\ManufacturerAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AttributeReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\MediaAlbumReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\MediaReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\NumberRangeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\OrderReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\OrderAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AttributeReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\ProductReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\ProductOptionRelationReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\ProductPropertyRelationReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\ProductAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AttributeReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\ProductPriceAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AttributeReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\PropertyGroupOptionReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\SalesChannelReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\TranslationReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\OrderDocumentReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\OrderDocumentAttributeReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AttributeReader">
            <tag name="shopware.migration.reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\ShippingMethodReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\ProductReviewReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\SeoUrlReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\CrossSellingReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\MainVariantRelationReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\PromotionReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\CustomerWishlistReader"
                 parent="SwagMigrationAssistant\Profile\Shopware\Gateway\Local\Reader\AbstractReader">
            <tag name="shopware.migration.reader"/>
            <tag name="kernel.reset" method="reset"/>
        </service>

        <!-- Shopware Dataselections -->
       <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\BasicSettingsDataSelection">
            <tag name="shopware.migration.data_selection"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\ProductDataSelection">
            <tag name="shopware.migration.data_selection"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\CustomerAndOrderDataSelection">
            <tag name="shopware.migration.data_selection"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\WishlistDataSelection">
            <tag name="shopware.migration.data_selection"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\MediaDataSelection">
            <tag name="shopware.migration.data_selection"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\NewsletterRecipientDataSelection">
            <tag name="shopware.migration.data_selection"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\ProductReviewDataSelection">
            <tag name="shopware.migration.data_selection"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\SeoUrlDataSelection">
            <tag name="shopware.migration.data_selection"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\PromotionDataSelection">
            <tag name="shopware.migration.data_selection"/>
        </service>

        <!-- Shopware DataSets -->
        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\ProductAttributeDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\ProductPriceAttributeDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\ManufacturerAttributeDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\ProductDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\ProductDownloadDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\ProductOptionRelationDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\ProductPropertyRelationDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\CustomerAttributeDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\CustomerDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\OrderAttributeDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\OrderDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\CategoryAttributeDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\CategoryDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\CustomerGroupAttributeDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\CustomerGroupDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\CustomerWishlistDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\MediaFolderDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\MediaDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\NumberRangeDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\TranslationDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\PropertyGroupOptionDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\NewsletterRecipientDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\LanguageDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\CurrencyDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\SalesChannelDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\OrderDocumentAttributeDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\OrderDocumentDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\ShippingMethodDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\ProductReviewDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\SeoUrlDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\CrossSellingDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\MainVariantRelationDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\DataSelection\DataSet\PromotionDataSet">
            <tag name="shopware.migration.data_set"/>
        </service>

        <!-- Shopware PreMappingReader -->
        <service id="SwagMigrationAssistant\Profile\Shopware\Premapping\OrderStateReader">
            <argument type="service" id="state_machine.repository"/>
            <argument type="service" id="state_machine_state.repository"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Gateway\GatewayRegistry"/>
            <tag name="shopware.migration.pre_mapping_reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Premapping\OrderDeliveryStateReader">
            <argument type="service" id="state_machine.repository"/>
            <argument type="service" id="state_machine_state.repository"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Gateway\GatewayRegistry"/>
            <tag name="shopware.migration.pre_mapping_reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Premapping\TransactionStateReader">
            <argument type="service" id="state_machine.repository"/>
            <argument type="service" id="state_machine_state.repository"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Gateway\GatewayRegistry"/>
            <tag name="shopware.migration.pre_mapping_reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Premapping\PaymentMethodReader">
            <argument type="service" id="payment_method.repository"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Gateway\GatewayRegistry"/>
            <tag name="shopware.migration.pre_mapping_reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Premapping\SalutationReader">
            <argument type="service" id="salutation.repository"/>
            <argument type="service" id="SwagMigrationAssistant\Migration\Gateway\GatewayRegistry"/>
            <tag name="shopware.migration.pre_mapping_reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Premapping\DeliveryTimeReader">
            <argument type="service" id="delivery_time.repository"/>
            <tag name="shopware.migration.pre_mapping_reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Premapping\DefaultShippingAvailabilityRuleReader">
            <argument type="service" id="rule.repository"/>
            <tag name="shopware.migration.pre_mapping_reader"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Premapping\NewsletterRecipientStatusReader">
            <tag name="shopware.migration.pre_mapping_reader"/>
        </service>

        <!-- Writer especially for writing relations to properties and options to the products -->
        <service id="SwagMigrationAssistant\Profile\Shopware\Writer\ProductOptionRelationWriter"
                 parent="SwagMigrationAssistant\Migration\Writer\AbstractWriter">
            <argument type="service" id="Shopware\Core\Framework\DataAbstractionLayer\Write\EntityWriter"/>
            <argument type="service" id="Shopware\Core\Content\Product\ProductDefinition"/>
            <tag name="shopware.migration.writer"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Writer\ProductPropertyRelationWriter"
                 parent="SwagMigrationAssistant\Migration\Writer\AbstractWriter">
            <argument type="service" id="Shopware\Core\Framework\DataAbstractionLayer\Write\EntityWriter"/>
            <argument type="service" id="Shopware\Core\Content\Product\ProductDefinition"/>
            <tag name="shopware.migration.writer"/>
        </service>

        <service id="SwagMigrationAssistant\Profile\Shopware\Writer\PromotionWriter"
                 parent="SwagMigrationAssistant\Migration\Writer\AbstractWriter">
            <argument type="service" id="Shopware\Core\Framework\DataAbstractionLayer\Write\EntityWriter"/>
            <argument type="service" id="Shopware\Core\Checkout\Promotion\PromotionDefinition"/>
            <tag name="shopware.migration.writer"/>
        </service>
    </services>
</container>
