<?php

namespace OfficeBrain\Bundle\SolrBundle\SearchServices;

use Symfony\Component\DependencyInjection\ContainerInterface;
/**
 * Client service factory class
 *
 * @author OfficeBrain 4220 <info@officebeacon.com>
 *
 */
class ClientFactory
{
   const PREFIX_PRODUCT = 'solarium.client.product_';

    private $serviceContainer;
    private $defaultCulture;

    /**
     * constructor
     * @param ContainerInterface $serviceContainer service container
     * @param string             $defaultCulture   default culture
     */
    public function __construct(ContainerInterface $serviceContainer , $defaultCulture)
    {
        $this->serviceContainer = $serviceContainer;
        $this->defaultCulture = $defaultCulture;
    }

    /**
     * get product serarch client instance.
     *
     * @param string $culture culture require for product search client instance
     *
     * @return Object
     **/
    public function getProductSearchClientInstance($culture = null)
    {
        if ($culture == null) {
            $culture = $this->defaultCulture;
        }
        $clientObj=$this->serviceContainer->get(self::PREFIX_PRODUCT.$culture);
        // Override Query Class because need to override RequestBuilder for Child Document Add
        $clientObj->registerQueryType('update','OfficeBrain\Bundle\SolrBundle\QueryType\Update\Query\Query');
        return $clientObj;
    }
    
    /** 
     * Emp Id : 4246
     * Description : Return Service Container Container
     * **/
	public function getContainer(){ return $this->serviceContainer; }
}