<?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>
       
		<service id="Nimbits\NimbitsNetSwitcherNext\Netswitcher\NetswitcherEntityDefinition">
            <tag name="shopware.entity.definition" entity="nimbits_netswitcher" />
        </service>
	   
		<service id="Nimbits\NimbitsNetSwitcherNext\Snippet\Files\en_GB\SnippetFile_en_GB">
            <tag name="shopware.snippet.file" priority="100"/>
        </service>

        <service id="Nimbits\NimbitsNetSwitcherNext\Snippet\Files\de_DE\SnippetFile_de_DE">
            <tag name="shopware.snippet.file" priority="100"/>
		</service>
		
		<service id="Nimbits\NimbitsNetSwitcherNext\Setting\Service\SettingService">
            <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
        </service>
		
		<service id="Nimbits\NimbitsNetSwitcherNext\Subscriber\Subscriber">
			<argument type="service" id="Nimbits\NimbitsNetSwitcherNext\Setting\Service\SettingService"/>
			<tag name="kernel.event_subscriber"/>
        </service>

		<service id="Nimbits\NimbitsNetSwitcherNext\Subscriber\HttpCacheSubscriber">
			<argument type="service" id="nimbits_netswitcher.repository"/>
			<tag name="kernel.event_subscriber"/>
		</service>
		
		<service id="Nimbits\NimbitsNetSwitcherNext\Controller\NetswitcherController" public="true">
			<call method="setContainer">
                <argument type="service" id="service_container"/>
            </call>
        </service>
		
		<service id="Nimbits\NimbitsNetSwitcherNext\Service\TaxDetectorService" 
					decorates="Shopware\Core\Checkout\Cart\Tax\TaxDetector">
			<argument type="service" id="request_stack"/>
			<argument type="service" id="Nimbits\NimbitsNetSwitcherNext\Service\TaxDetectorService.inner" />
			<call method="setContainer">
                <argument type="service" id="service_container"/>
            </call>
        </service>
		
		<service id="Nimbits\NimbitsNetSwitcherNext\Service\NetSwitcherSalesChannelContextFactory"
				decorates="Shopware\Core\System\SalesChannel\Context\SalesChannelContextFactory" 
				decoration-priority="-5000">
            <argument type="service" id="Nimbits\NimbitsNetSwitcherNext\Service\NetSwitcherSalesChannelContextFactory.inner"/>
            <argument type="service" id="request_stack"/>
			<argument type="service" id="nimbits_netswitcher.repository"/>
        </service>
		
		<service id="Nimbits\NimbitsNetSwitcherNext\Service\NetSwitcherCacheKeyGenerator"
					decorates="Shopware\Core\Framework\DataAbstractionLayer\Cache\EntityCacheKeyGenerator">
			<argument type="service" id="Nimbits\NimbitsNetSwitcherNext\Service\NetSwitcherCacheKeyGenerator.inner" />
			<argument type="service" id="nimbits_netswitcher.repository"/>
			<argument type="service" id="request_stack"/>
        </service>
		
	</services>
</container>