<?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">

    <parameters>
        <parameter key="shopware.app_dir">%kernel.project_dir%/custom/apps</parameter>
    </parameters>
    <services>
        <service id="Shopware\Core\Framework\App\Subscriber\AppLoadedSubscriber">
            <tag name="kernel.event_subscriber"/>
        </service>

        <service id="Shopware\Core\Framework\App\Subscriber\CustomFieldProtectionSubscriber">
            <argument type="service" id="Doctrine\DBAL\Connection"/>

            <tag name="kernel.event_subscriber"/>
        </service>

        <service id="Shopware\Core\Framework\App\Subscriber\AppScriptConditionConstraintsSubscriber">
            <tag name="kernel.event_subscriber"/>
        </service>

        <service id="Shopware\Core\Framework\App\ShopId\ShopIdProvider" public="true">
            <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
            <argument type="service" id="app.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\Manifest\ModuleLoader">
            <argument type="service" id="app.repository"/>
            <argument type="service" id="Shopware\Core\Framework\App\ShopId\ShopIdProvider"/>
            <argument type="service" id="Shopware\Core\Framework\App\Hmac\QuerySigner"/>
        </service>

        <service id="Shopware\Core\Framework\App\Validation\TranslationValidator">
            <tag name="shopware.app_manifest.validator"/>
        </service>

        <service id="Shopware\Core\Framework\App\Validation\AppNameValidator">
            <tag name="shopware.app_manifest.validator"/>
        </service>

        <service id="Shopware\Core\Framework\App\Validation\ManifestValidator">
            <argument type="tagged" tag="shopware.app_manifest.validator"/>
        </service>

        <service id="Shopware\Core\Framework\App\Validation\ConfigValidator">
            <argument type="service" id="Shopware\Core\System\SystemConfig\Util\ConfigReader"/>

            <tag name="shopware.app_manifest.validator"/>
        </service>

        <service id="Shopware\Core\Framework\App\Validation\HookableValidator">
            <argument type="service" id="Shopware\Core\Framework\Webhook\Hookable\HookableEventCollector"/>

            <tag name="shopware.app_manifest.validator"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\CustomFieldPersister">
            <argument type="service" id="custom_field_set.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\PermissionPersister">
            <argument type="service" id="Doctrine\DBAL\Connection"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\ActionButtonPersister">
            <argument type="service" id="app_action_button.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\ScriptPersister">
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\ScriptFileReader"/>
            <argument type="service" id="script.repository"/>
            <argument type="service" id="app.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\ScriptFileReader">
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLoader"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\TemplatePersister">
            <argument type="service" id="Shopware\Core\Framework\App\Template\TemplateLoader"/>
            <argument type="service" id="app_template.repository"/>
            <argument type="service" id="app.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\Template\TemplateLoader">
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLoader"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\WebhookPersister">
            <argument type="service" id="webhook.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\PaymentMethodPersister">
            <argument type="service" id="payment_method.repository"/>
            <argument type="service" id="Shopware\Core\Content\Media\MediaService"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLoader"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\ShippingMethodPersister">
            <argument type="service" id="shipping_method.repository"/>
            <argument type="service" id="app_shipping_method.repository"/>
            <argument type="service" id="media.repository"/>
            <argument type="service" id="Shopware\Core\Content\Media\MediaService"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLoader"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\TaxProviderPersister">
            <argument type="service" id="tax_provider.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\RuleConditionPersister">
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\ScriptFileReader"/>
            <argument type="service" id="app_script_condition.repository"/>
            <argument type="service" id="app.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\CmsBlockPersister">
            <argument type="service" id="app_cms_block.repository"/>
            <argument type="service" id="Shopware\Core\Framework\App\Cms\BlockTemplateLoader"/>
            <argument type="service" id="Shopware\Core\Framework\Util\HtmlSanitizer"/>
        </service>

        <service id="Shopware\Core\Framework\App\AppService">
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLifecycleIterator"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLifecycle"/>
        </service>

        <service id="Shopware\Core\Framework\App\AppStateService">
            <argument type="service" id="app.repository"/>
            <argument type="service" id="event_dispatcher"/>
            <argument type="service" id="Shopware\Core\Framework\App\ActiveAppsLoader"/>
            <argument type="service" id="Shopware\Core\Framework\App\Template\TemplateStateService"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\ScriptPersister"/>
            <argument type="service" id="Shopware\Core\Framework\App\Payment\PaymentMethodStateService"/>
            <argument type="service" id="Shopware\Core\Framework\Script\Execution\ScriptExecutor"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\RuleConditionPersister"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\FlowEventPersister"/>
        </service>

        <service id="Shopware\Core\Framework\App\AppPayloadServiceHelper">
            <argument type="service" id="Shopware\Core\Framework\DataAbstractionLayer\DefinitionInstanceRegistry"/>
            <argument type="service" id="Shopware\Core\Framework\Api\Serializer\JsonEntityEncoder"/>
            <argument type="service" id="Shopware\Core\Framework\App\ShopId\ShopIdProvider"/>
        </service>

        <service id="Shopware\Core\Framework\App\ActiveAppsLoader">
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLoader"/>
            <argument>%kernel.project_dir%</argument>

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

        <service id="Shopware\Core\Framework\App\Template\TemplateStateService" public="true">
            <argument type="service" id="app_template.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\Payment\PaymentMethodStateService">
            <argument type="service" id="payment_method.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\Payment\Payload\PaymentPayloadService">
            <argument type="service" id="Shopware\Core\Framework\App\AppPayloadServiceHelper"/>
            <argument type="service" id="shopware.app_system.guzzle"/>
            <argument type="string">%env(APP_URL)%</argument>
        </service>

        <service id="Shopware\Core\Framework\App\Payment\Handler\AppPaymentHandler">
            <argument type="service" id="Shopware\Core\Checkout\Order\Aggregate\OrderTransaction\OrderTransactionStateHandler"/>
            <argument type="service" id="Shopware\Core\System\StateMachine\StateMachineRegistry"/>
            <argument type="service" id="Shopware\Core\Framework\App\Payment\Payload\PaymentPayloadService"/>
            <argument type="service" id="order_transaction_capture_refund.repository"/>
            <tag name="shopware.payment.method.prepared"/>
            <tag name="shopware.payment.method.refund"/>
        </service>

        <service id="Shopware\Core\Framework\App\Payment\Handler\AppSyncPaymentHandler"
                 parent="Shopware\Core\Framework\App\Payment\Handler\AppPaymentHandler">
            <tag name="shopware.payment.method.sync"/>
        </service>

        <service id="Shopware\Core\Framework\App\Payment\Handler\AppAsyncPaymentHandler"
                 parent="Shopware\Core\Framework\App\Payment\Handler\AppPaymentHandler">
            <tag name="shopware.payment.method.async"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Registration\AppRegistrationService">
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Registration\HandshakeFactory"/>
            <argument type="service" id="shopware.app_system.guzzle"/>
            <argument type="service" id="app.repository"/>
            <argument type="string">%env(APP_URL)%</argument>
            <argument type="service" id="Shopware\Core\Framework\App\ShopId\ShopIdProvider"/>
            <argument>%kernel.shopware_version%</argument>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Registration\HandshakeFactory">
            <argument type="string">%env(APP_URL)%</argument>
            <argument type="service" id="Shopware\Core\Framework\App\ShopId\ShopIdProvider"/>
            <argument type="service" id="Shopware\Core\Framework\Store\Services\StoreClient"/>
            <argument>%kernel.shopware_version%</argument>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\AppLifecycle">
            <argument type="service" id="app.repository"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\PermissionPersister"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\CustomFieldPersister"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\ActionButtonPersister"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\TemplatePersister"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\ScriptPersister"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\WebhookPersister"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\PaymentMethodPersister"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\TaxProviderPersister"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\RuleConditionPersister"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\CmsBlockPersister"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLoader"/>
            <argument type="service" id="event_dispatcher"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Registration\AppRegistrationService"/>
            <argument type="service" id="Shopware\Core\Framework\App\AppStateService"/>
            <argument type="service" id="language.repository"/>
            <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
            <argument type="service" id="Shopware\Core\Framework\App\Validation\ConfigValidator"/>
            <argument type="service" id="integration.repository"/>
            <argument type="service" id="acl_role.repository"/>
            <argument type="service" id="Shopware\Core\Framework\Plugin\Util\AssetService"/>
            <argument type="service" id="Shopware\Core\Framework\Script\Execution\ScriptExecutor"/>
            <argument type="string">%kernel.project_dir%</argument>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\FlowActionPersister"/>
            <argument type="service" id="Shopware\Administration\Snippet\AppAdministrationSnippetPersister" on-invalid="null"/>
            <argument type="service" id="Shopware\Core\System\CustomEntity\Schema\CustomEntitySchemaUpdater"/>
            <argument type="service" id="Shopware\Core\System\CustomEntity\CustomEntityLifecycleService"/>
            <argument>%kernel.shopware_version%</argument>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\FlowEventPersister"/>
            <argument>%kernel.environment%</argument>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Persister\ShippingMethodPersister"/>
            <argument type="service" id="custom_entity.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\AppLifecycleIterator">
            <argument type="service" id="app.repository"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLoader"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Update\AbstractAppUpdater" class="Shopware\Core\Framework\App\Lifecycle\Update\AppUpdater">
            <argument type="service" id="Shopware\Core\Framework\Store\Services\AbstractExtensionDataProvider"/>
            <argument type="service" id="app.repository"/>
            <argument type="service" id="Shopware\Core\Framework\Store\Services\ExtensionDownloader"/>
            <argument type="service" id="Shopware\Core\Framework\Store\Services\AbstractStoreAppLifecycleService"/>
        </service>

        <service id="Shopware\Core\Framework\App\ScheduledTask\UpdateAppsTask">
            <tag name="shopware.scheduled.task"/>
        </service>

        <service id="Shopware\Core\Framework\App\ScheduledTask\UpdateAppsHandler">
            <argument type="service" id="scheduled_task.repository"/>
            <argument type="service" id="logger"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Update\AbstractAppUpdater" on-invalid="null"/>
            <tag name="messenger.message_handler"/>
        </service>

        <service id="Shopware\Core\Framework\App\ScheduledTask\DeleteCascadeAppsTask">
            <tag name="shopware.scheduled.task"/>
        </service>

        <service id="Shopware\Core\Framework\App\ScheduledTask\DeleteCascadeAppsHandler">
            <argument type="service" id="scheduled_task.repository"/>
            <argument type="service" id="logger"/>
            <argument type="service" id="acl_role.repository"/>
            <argument type="service" id="integration.repository"/>
            <tag name="messenger.message_handler"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\AppLoader">
            <argument>%shopware.app_dir%</argument>
            <argument>%kernel.project_dir%</argument>
            <argument type="service" id="Shopware\Core\System\SystemConfig\Util\ConfigReader"/>
            <argument type="service" id="logger"/>
        </service>

        <service id="shopware.app_system.guzzle" class="GuzzleHttp\Client" lazy="true">
            <argument type="collection">
                <argument key="timeout">5</argument>
                <argument key="connect_timeout">1</argument>
                <argument key="handler" type="service">
                    <service class="GuzzleHttp\HandlerStack">
                        <factory class="GuzzleHttp\HandlerStack" method="create" />
                        <call method="push">
                            <argument type="service" id="shopware.app_system.guzzle.middleware"/>
                        </call>
                    </service>
                </argument>
            </argument>
        </service>

        <service id="shopware.app_system.guzzle.middleware" class="Shopware\Core\Framework\App\Hmac\Guzzle\AuthMiddleware">
            <argument>%kernel.shopware_version%</argument>
            <argument type="service" id="Shopware\Core\Framework\App\AppLocaleProvider"/>
        </service>

        <service id="Shopware\Core\Framework\App\ActionButton\ActionButtonLoader">
            <argument type="service" id="app_action_button.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\ActionButton\Response\ActionButtonResponseFactory">
            <argument type="tagged_iterator" tag="shopware.action_button.response_factory"/>
        </service>

        <service id="Shopware\Core\Framework\App\ActionButton\Response\NotificationResponseFactory">
            <tag name="shopware.action_button.response_factory"/>
        </service>

        <service id="Shopware\Core\Framework\App\ActionButton\Response\OpenModalResponseFactory">
            <argument type="service" id="Shopware\Core\Framework\App\Hmac\QuerySigner"/>

            <tag name="shopware.action_button.response_factory"/>
        </service>

        <service id="Shopware\Core\Framework\App\ActionButton\Response\OpenNewTabResponseFactory">
            <argument type="service" id="Shopware\Core\Framework\App\Hmac\QuerySigner"/>

            <tag name="shopware.action_button.response_factory"/>
        </service>

        <service id="Shopware\Core\Framework\App\ActionButton\Response\ReloadDataResponseFactory">
            <tag name="shopware.action_button.response_factory"/>
        </service>

        <service id="Shopware\Core\Framework\App\Hmac\QuerySigner">
            <argument type="string">%env(APP_URL)%</argument>
            <argument>%kernel.shopware_version%</argument>
            <argument type="service" id="Shopware\Core\Framework\Store\Authentication\LocaleProvider"/>
            <argument type="service" id="Shopware\Core\Framework\App\ShopId\ShopIdProvider"/>
        </service>

        <service id="Shopware\Core\Framework\App\ActionButton\Executor">
            <argument type="service" id="shopware.app_system.guzzle"/>
            <argument type="service" id="logger"/>
            <argument type="service" id="Shopware\Core\Framework\App\ActionButton\Response\ActionButtonResponseFactory"/>
            <argument type="service" id="Shopware\Core\Framework\App\ShopId\ShopIdProvider"/>
            <argument type="service" id="router"/>
            <argument type="service" id="request_stack"/>
            <argument type="service" id="kernel"/>
        </service>

        <service id="Shopware\Core\Framework\App\ActionButton\AppActionLoader">
            <argument>%env(APP_URL)%</argument>
            <argument type="service" id="app_action_button.repository"/>
            <argument type="service" id="Shopware\Core\Framework\App\ShopId\ShopIdProvider"/>
        </service>

        <service id="Shopware\Core\Framework\App\Api\AppActionController" public="true">
            <argument type="service" id="Shopware\Core\Framework\App\ActionButton\ActionButtonLoader"/>
            <argument type="service" id="Shopware\Core\Framework\App\ActionButton\AppActionLoader"/>
            <argument type="service" id="Shopware\Core\Framework\App\ActionButton\Executor"/>
            <argument type="service" id="Shopware\Core\Framework\App\Manifest\ModuleLoader"/>
            <call method="setContainer">
                <argument type="service" id="service_container"/>
            </call>
        </service>

        <service id="Shopware\Core\Framework\App\Api\AppCmsController" public="true">
            <argument type="service" id="app_cms_block.repository"/>

            <call method="setContainer">
                <argument type="service" id="service_container"/>
            </call>
        </service>

        <service id="Shopware\Core\Framework\App\Api\AppJWTGenerateRoute" public="true">
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <argument type="service" id="Shopware\Core\Framework\App\ShopId\ShopIdProvider"/>

        </service>

        <service id="Shopware\Core\Framework\App\Command\AppPrinter">
            <argument type="service" id="app.repository"/>
        </service>

        <service id="Shopware\Core\Framework\App\AppLocaleProvider" public="true">
            <argument type="service" id="user.repository"/>
            <argument type="service" id="Shopware\Core\System\Locale\LanguageLocaleCodeProvider"/>
        </service>

        <!-- COMMANDS -->
        <service id="Shopware\Core\Framework\App\Command\RefreshAppCommand">
            <argument type="service" id="Shopware\Core\Framework\App\AppService"/>
            <argument type="service" id="Shopware\Core\Framework\App\Command\AppPrinter"/>
            <argument type="service" id="Shopware\Core\Framework\App\Validation\ManifestValidator"/>
            <argument type="service" id="Shopware\Core\Framework\App\Delta\AppConfirmationDeltaProvider"/>
            <argument type="service" id="app.repository"/>

            <tag name="console.command"/>
        </service>

        <service id="Shopware\Core\Framework\App\Command\InstallAppCommand">
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLoader"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLifecycle"/>
            <argument type="service" id="Shopware\Core\Framework\App\Command\AppPrinter"/>
            <argument type="service" id="Shopware\Core\Framework\App\Validation\ManifestValidator"/>

            <tag name="console.command"/>
        </service>

        <service id="Shopware\Core\Framework\App\Command\UninstallAppCommand">
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLifecycle"/>
            <argument type="service" id="app.repository"/>

            <tag name="console.command"/>
        </service>

        <service id="Shopware\Core\Framework\App\Command\ActivateAppCommand">
            <argument type="service" id="app.repository"/>
            <argument type="service" id="Shopware\Core\Framework\App\AppStateService"/>

            <tag name="console.command"/>
        </service>

        <service id="Shopware\Core\Framework\App\Command\DeactivateAppCommand">
            <argument type="service" id="app.repository"/>
            <argument type="service" id="Shopware\Core\Framework\App\AppStateService"/>

            <tag name="console.command"/>
        </service>

        <service id="Shopware\Core\Framework\App\Command\CreateAppCommand">
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLifecycle"/>
            <argument>%shopware.app_dir%</argument>
            <tag name="console.command"/>
        </service>

        <service id="Shopware\Core\Framework\App\Command\ValidateAppCommand">
            <argument>%shopware.app_dir%</argument>
            <argument type="service" id="Shopware\Core\Framework\App\Validation\ManifestValidator"/>

            <tag name="console.command"/>
        </service>

        <service id="Shopware\Core\Framework\App\Command\ResolveAppUrlChangeCommand">
            <argument type="service" id="Shopware\Core\Framework\App\AppUrlChangeResolver\Resolver"/>

            <tag name="console.command"/>
        </service>

        <service id="Shopware\Core\Framework\App\Api\AppUrlChangeController" public="true">
            <argument type="service" id="Shopware\Core\Framework\App\AppUrlChangeResolver\Resolver"/>
            <argument type="service" id="Shopware\Core\Framework\App\ShopId\ShopIdProvider"/>

            <call method="setContainer">
                <argument type="service" id="service_container"/>
            </call>
        </service>

        <service id="Shopware\Core\Framework\App\AppUrlChangeResolver\Resolver" public="true">
            <argument type="tagged" tag="shopware.app_url_changed_resolver"/>
        </service>

        <service id="Shopware\Core\Framework\App\AppUrlChangeResolver\MoveShopPermanentlyStrategy">
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLoader"/>
            <argument type="service" id="app.repository"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Registration\AppRegistrationService"/>
            <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>

            <tag name="shopware.app_url_changed_resolver"/>
        </service>

        <service id="Shopware\Core\Framework\App\AppUrlChangeResolver\ReinstallAppsStrategy">
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLoader"/>
            <argument type="service" id="app.repository"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Registration\AppRegistrationService"/>
            <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
            <argument type="service" id="event_dispatcher"/>

            <tag name="shopware.app_url_changed_resolver"/>
        </service>

        <service id="Shopware\Core\Framework\App\AppUrlChangeResolver\UninstallAppsStrategy">
            <argument type="service" id="app.repository"/>
            <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
            <argument type="service" id="Shopware\Storefront\Theme\ThemeAppLifecycleHandler" on-invalid="null"/>

            <tag name="shopware.app_url_changed_resolver"/>
        </service>

        <!-- DELTA -->
        <service id="Shopware\Core\Framework\App\Delta\PermissionsDeltaProvider">
            <tag name="shopware.app_delta"/>
        </service>

        <service id="Shopware\Core\Framework\App\Delta\DomainsDeltaProvider">
            <tag name="shopware.app_delta"/>
        </service>

        <!-- ENTITY DEFINITIONS -->
        <service id="Shopware\Core\Framework\App\AppDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Aggregate\AppTranslation\AppTranslationDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Aggregate\ActionButton\ActionButtonDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Aggregate\ActionButtonTranslation\ActionButtonTranslationDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Template\TemplateDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Aggregate\AppPaymentMethod\AppPaymentMethodDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Aggregate\AppScriptCondition\AppScriptConditionDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Aggregate\AppScriptConditionTranslation\AppScriptConditionTranslationDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Aggregate\CmsBlock\AppCmsBlockDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Aggregate\CmsBlockTranslation\AppCmsBlockTranslationDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Aggregate\FlowAction\AppFlowActionDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Aggregate\FlowActionTranslation\AppFlowActionTranslationDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Aggregate\FlowEvent\AppFlowEventDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Aggregate\AppShippingMethod\AppShippingMethodDefinition">
            <tag name="shopware.entity.definition"/>
        </service>

        <service id="Shopware\Core\Framework\App\Flow\Action\AppFlowActionLoadedSubscriber">
            <tag name="kernel.event_subscriber"/>
        </service>

        <service id="Shopware\Core\Framework\App\Cms\BlockTemplateLoader">
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\FlowActionPersister">
            <argument type="service" id="app_flow_action.repository"/>
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\AppLoader"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
        </service>

        <service id="Shopware\Core\Framework\App\Flow\Action\AppFlowActionProvider" public="true">
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <argument type="service" id="Shopware\Core\Framework\Webhook\BusinessEventEncoder"/>
            <argument type="service" id="Shopware\Core\Framework\Adapter\Twig\StringTemplateRenderer"/>
        </service>

        <service id="Shopware\Core\Framework\App\Delta\AppConfirmationDeltaProvider">
            <argument type="tagged_iterator" tag="shopware.app_delta"/>
        </service>

        <service id="Shopware\Core\Framework\App\Lifecycle\Persister\FlowEventPersister">
            <argument type="service" id="app_flow_event.repository"/>
            <argument type="service" id="Doctrine\DBAL\Connection"/>
        </service>
    </services>
</container>
