<?php

namespace OfficeBrain\Bundle\BlogBundle\Entity;

use Doctrine\ORM\EntityRepository;

/**
 * PostRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class PostRepository extends EntityRepository
{
    public function getCategory()
    {
        $query = $this->getEntityManager()->getRepository('OfficeBrainBlogBundle:Category')->createQueryBuilder('c');
        $query->select('c.id, c.categoryName, c.slug') // select whole entity
                  ->where('c.categoryIsDeleted = 0 AND c.categoryStatus = 1')
                  ->orderBy('c.id', 'DESC');
		return $record_set= $query->getQuery()->getResult();  
    }
    
    public function getTag()
    {
        $query = $this->getEntityManager()->getRepository('OfficeBrainBlogBundle:Tag')->createQueryBuilder('t');
        $query->select('t.id, t.tagName, t.slug') // select whole entity
                  ->where('t.tagIsDeleted = 0 AND t.tagStatus = 1')
                  ->orderBy('t.id', 'DESC');
		return $record_set= $query->getQuery()->getResult();  
    }

    public function getPostFromCategory($catid)
    {
        $query = $this->getEntityManager()->getRepository('OfficeBrainBlogBundle:postCategoryInfo')->createQueryBuilder('pci');
        $query->select('IDENTITY(pci.postId)') // select whole entity
              ->where('pci.categoryId ='.$catid);
              //->orderBy('t.id', 'DESC');
              
        $record_set= $query->getQuery()->getResult();
        $postID    =   array();
        foreach ($record_set as $key => $value) {
            $postID[]    =   $value[1];
        }
        return $postID ;   
        
    }
    
    public function getPostFromTag($tagid)
    {
        $query = $this->getEntityManager()->getRepository('OfficeBrainBlogBundle:postTagInfo')->createQueryBuilder('pti');
        $query->select('IDENTITY(pti.postId)') // select whole entity
              ->where('pti.tagId ='.$tagid);
              //->orderBy('t.id', 'DESC');
              
        $record_set= $query->getQuery()->getResult();
        $postID    =   array();
        foreach ($record_set as $key => $value) {
            $postID[]    =   $value[1];
        }
        return $postID ;   
        
    }
    
    public function getCommentOnPost($postid)
    {
        $query = $this->getEntityManager()->getRepository('OfficeBrainBlogBundle:Comment')->createQueryBuilder('pti');
        $query->select('IDENTITY(pti.postId)') // select whole entity
              ->where('pti.tagId ='.$tagid);
              //->orderBy('t.id', 'DESC');
              
        $record_set= $query->getQuery()->getResult();
        $postID    =   array();
        foreach ($record_set as $key => $value) {
            $postID[]    =   $value[1];
        }
        return $postID ;   
    }
    
    public function getNextPost($id)
    {
        
        $query = $this->getEntityManager()->getRepository('OfficeBrainBlogBundle:Post')->createQueryBuilder('p');
        $query->select('p.id','p.postName','p.slug') // select whole entity
              ->where('p.id >'.$id. 'AND p.postIsDeleted = 0 AND p.postStatus = 1')
              ->setMaxResults(1);
              
        $next = $query->getQuery()->getResult();
        
        return $next; 
        
    }
    public function getpreviousPost($id)
    {
        
        $query = $this->getEntityManager()->getRepository('OfficeBrainBlogBundle:Post')->createQueryBuilder('p');
        $query->select('p.id','p.postName','p.slug') // select whole entity
              ->where('p.id <'.$id. 'AND p.postIsDeleted = 0 AND p.postStatus = 1')
              ->orderBy('p.id', 'DESC')
              ->setMaxResults(1);
              
        $previous = $query->getQuery()->getResult();
        
        return $previous; 
    }
    
}