<?php

namespace OfficeBrain\Bundle\ProductBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;

/**
 * SearchKeyword
 *
 * @ORM\Table(name="tbl_search_keyword")
 * @ORM\Entity(repositoryClass="OfficeBrain\Bundle\ProductBundle\Entity\SearchKeywordRepository")
 * @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false)
 */
class SearchKeyword
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var integer
     *
     * @ORM\Column(name="created_uid", type="integer", nullable=true)
     */
    private $createdUid;

    /**
     * @var \DateTime
     * @Gedmo\Timestampable(on="create")
     * @ORM\Column(name="created_at", type="datetime", nullable=true)
     */
    private $createdAt;

    /**
     * @var \DateTime
     * @Gedmo\Timestampable(on="update")
     * @ORM\Column(name="updated_at", type="datetime", nullable=true)
     */
    private $updatedAt;

    /**
     * @var \ProductMaster
     *
     * @ORM\ManyToOne(targetEntity="ProductMaster")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="product_master", referencedColumnName="id")
     * })
     */
    private $productMaster;

    /**
     * @var \CultureProducts
     *
     * @ORM\ManyToOne(targetEntity="CultureProducts")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="culture_product_id", referencedColumnName="id")
     * })
     */
    private $culture_product_id;

    /**
     * @var integer
     *
     * @ORM\Column(name="updated_uid", type="integer", nullable=true)
     */
    private $updatedUid;

    /**
     * @var integer
     *
     * @ORM\Column(name="culture_id", type="integer", nullable=true)
     */
    private $cultureId;

    /**
     * @var string
     *
     * @ORM\Column(name="keyword", type="string", length=255, nullable=false)
     */
    private $keyword;

    /**
     * @var boolean
     *
     * @ORM\Column(name="active", type="boolean", nullable=true)
     */
    private $active;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="deleted_at", type="datetime", nullable=true)
     */
    private $deletedAt;

    /**
     * @var integer
     *
     * @ORM\Column(name="deleted_uid", type="integer", nullable=true)
     */
    private $deletedUid;

    /**
     * @var boolean
     *
     * @ORM\Column(name="tag", type="boolean", nullable=true)
     */
    private $tag;

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set createdUid
     *
     * @param integer $createdUid
     * @return SearchKeyword
     */
    public function setCreatedUid($createdUid)
    {
        $this->createdUid = $createdUid;

        return $this;
    }

    /**
     * Get createdUid
     *
     * @return integer 
     */
    public function getCreatedUid()
    {
        return $this->createdUid;
    }

    /**
     * Set createdAt
     *
     * @param \DateTime $createdAt
     * @return SearchKeyword
     */
    public function setCreatedAt($createdAt)
    {
        $this->createdAt = $createdAt;

        return $this;
    }

    /**
     * Get createdAt
     *
     * @return \DateTime 
     */
    public function getCreatedAt()
    {
        return $this->createdAt;
    }

    /**
     * Set updatedAt
     *
     * @param \DateTime $updatedAt
     * @return SearchKeyword
     */
    public function setUpdatedAt($updatedAt)
    {
        $this->updatedAt = $updatedAt;

        return $this;
    }

    /**
     * Get updatedAt
     *
     * @return \DateTime 
     */
    public function getUpdatedAt()
    {
        return $this->updatedAt;
    }

    /**
     * Set updatedUid
     *
     * @param integer $updatedUid
     * @return SearchKeyword
     */
    public function setUpdatedUid($updatedUid)
    {
        $this->updatedUid = $updatedUid;

        return $this;
    }

    /**
     * Get updatedUid
     *
     * @return integer 
     */
    public function getUpdatedUid()
    {
        return $this->updatedUid;
    }

    /**
     * Set keyword
     *
     * @param string $keyword
     * @return SearchKeyword
     */
    public function setKeyword($keyword)
    {
        $this->keyword = $keyword;

        return $this;
    }

    /**
     * Get keyword
     *
     * @return string 
     */
    public function getKeyword()
    {
        return $this->keyword;
    }

    /**
     * Set active
     *
     * @param boolean $active
     * @return SearchKeyword
     */
    public function setActive($active)
    {
        $this->active = $active;

        return $this;
    }

    /**
     * Get active
     *
     * @return boolean 
     */
    public function getActive()
    {
        return $this->active;
    }

    /**
     * Set deletedAt
     *
     * @param \DateTime $deletedAt
     * @return SearchKeyword
     */
    public function setDeletedAt($deletedAt)
    {
        $this->deletedAt = $deletedAt;

        return $this;
    }

    /**
     * Get deletedAt
     *
     * @return \DateTime 
     */
    public function getDeletedAt()
    {
        return $this->deletedAt;
    }

    /**
     * Set deletedUid
     *
     * @param integer $deletedUid
     * @return SearchKeyword
     */
    public function setDeletedUid($deletedUid)
    {
        $this->deletedUid = $deletedUid;

        return $this;
    }

    /**
     * Get deletedUid
     *
     * @return integer 
     */
    public function getDeletedUid()
    {
        return $this->deletedUid;
    }

    /**
     * Set tag
     *
     * @param boolean $tag
     * @return SearchKeyword
     */
    public function setTag($tag)
    {
        $this->tag = $tag;

        return $this;
    }

    /**
     * Get tag
     *
     * @return boolean 
     */
    public function getTag()
    {
        return $this->tag;
    }

    /**
     * Set productMaster
     *
     * @param \OfficeBrain\Bundle\ProductBundle\Entity\ProductMaster $productMaster
     * @return SearchKeyword
     */
    public function setProductMaster(\OfficeBrain\Bundle\ProductBundle\Entity\ProductMaster $productMaster = null)
    {
        $this->productMaster = $productMaster;

        return $this;
    }

    /**
     * Get productMaster
     *
     * @return \OfficeBrain\Bundle\ProductBundle\Entity\ProductMaster 
     */
    public function getProductMaster()
    {
        return $this->productMaster;
    }

    /**
     * Set culture_product_id
     *
     * @return SearchKeyword
     */
    public function setCultureProductId($cultureProductId)
    {
        $this->culture_product_id = $cultureProductId;

        return $this;
    }

    /**
     * Get culture_product_id
     *
     * @return culture_product_id 
     */
    public function getCultureProductId()
    {
        return $this->culture_product_id;
    }

    /**
     * Set cultureId
     *
     * @param integer $cultureId
     * @return ProductAvailableImprintMethod
     */
    public function setCultureId($cultureId)
    {
        $this->cultureId = $cultureId;

        return $this;
    }

    /**
     * Get cultureId
     *
     * @return integer 
     */
    public function getCultureId()
    {
        return $this->cultureId;
    }
}
