<?php

namespace OfficeBrain\Bundle\SeoBundle\Entity;
use Doctrine\ORM\EntityRepository;

/**
 * SeoCategoryRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class SeoCategoryRepository extends \Doctrine\ORM\EntityRepository
{

	protected $paginatorService;

	public function getPaginatorService()
	{
		return $this->paginatorService;
	}
	
	public function setPaginatorService($paginatorService)
	{
		$this->paginatorService = $paginatorService;
	}

  public function getQueryBuilder()
	{
		return $this->getEntityManager()->getRepository('OfficeBrainSeoBundle:SeoCategory')->createQueryBuilder('s');
	}

    /**
	 * To get request info detail by id
	 */
	public function getSeoCategoryBySlug($slug,$urlType)
	{	
		$queryBuilder = $this->getQueryBuilder();
		$queryBuilder->where('s.productSlug = :productSlug');
		$queryBuilder->andWhere('s.urlType = :urlType');
		$queryBuilder->setParameter('productSlug', $slug);
		$queryBuilder->setParameter('urlType', $urlType);
		return $queryBuilder->getQuery()->getOneOrNullResult();
	}
	
	public function getAdminCategoryContent($page,$recordPerPage,$searchParameter)
	{

		$queryBuilder = $this->getQueryBuilder();
		//print_r($searchParameter); die;
    if($searchParameter['keyword']!="" && $searchParameter['option']!=''){
    		$queryBuilder->where('s.'.$searchParameter['option'].' = :keyword')
    		->setParameter('keyword', $searchParameter['keyword']);
    	  
    }
		$queryBuilder->orderBy('s.id', 'DESC');
		//echo $queryBuilder->getQuery()->getSQL();die;
		//$result = $queryBuilder->getQuery()->getArrayResult();
		return $this->paginatorService->paginate($queryBuilder, $page, $recordPerPage);
	}
}
