<?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="office_brain_service_group.service_group_manager">OfficeBrain\Bundle\ServiceGroupBundle\Manager\Service\ServiceGroupService</parameter>
        <parameter key="office_brain_service_group.service_rule_manager">OfficeBrain\Bundle\ServiceGroupBundle\Manager\Service\ServiceRuleService</parameter>
        <parameter key="office_brain_service_group.request_listener">OfficeBrain\Bundle\ServiceGroupBundle\Listener\RequestListener</parameter>
        <parameter key="office_brain_service_group.service_group_api">OfficeBrain\Bundle\ServiceGroupBundle\ApiClient\ServiceGroupApiClient</parameter>
    </parameters>

    <services>
    	<service id="office_brain_service_group_api" class="%office_brain_service_group.service_group_api%" scope="request">
			<argument type="service" id="request" />
			<argument>%api.base_url%</argument>
			<argument>%api.access_token%</argument>
			<argument>%api.default_version%</argument>
            <argument>%api.available_call_to_override%</argument>
		</service>
		
        <service id="office_brain_service_group_factory" class="%office_brain_service_group.service_group_manager%"/>

        <service id="office_brain_service_group_manager" class="%office_brain_service_group.service_group_manager%" scope='request'>
            <factory service="office_brain_service_group_factory" method="initFactory"/>
             <argument type="service" id="doctrine.orm.entity_manager"/>
             <argument type="service" id="request"/>
             <argument type="service" id="office_brain_session_manager"/>
             <argument type="service" id="service_container"/>
             <argument>%country%</argument>
             <argument>%language%</argument>
             <argument type="service" id="translator"/>
             <argument type="service" id="office_brain_core_manager"/>
        </service>

        <service id="office_brain_service_group_rule_factory" class="%office_brain_service_group.service_rule_manager%"/>

        <service id="office_brain_service_group_rule_manager" class="%office_brain_service_group.service_rule_manager%" scope='request'>
            <factory service="office_brain_service_group_rule_factory" method="initFactory"/>
             <argument type="service" id="doctrine.orm.entity_manager"/>
             <argument type="service" id="request"/>
             <argument type="service" id="office_brain_session_manager"/>
             <argument type="service" id="service_container"/>
             <argument type="service" id="translator"/>
             <argument>%country%</argument>
             <argument>%language%</argument>
             <argument type="service" id="office_brain_core_manager"/>
             <argument type="service" id="office_brain_product_tag_manager"/>
             <argument type="service" id="office_brain_service_group_api"/>
             <argument type="service" id="web.twig.extension"/>
        </service>

        <service id="listener.requestListener" class="%office_brain_service_group.request_listener%">
        	<tag name="kernel.event_listener" event="kernel.controller" method="onKernelController" />
                <tag name="kernel.event_listener" event="kernel.view" method="onKernelView" />
            <argument type="service" id="service_container" />
            <argument type="service" id="templating" />
        </service>
    </services>
</container>
