<?php

namespace OfficeBrain\Bundle\ProductTagBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert; // Don't forget this part.
use Gedmo\Mapping\Annotation as Gedmo;

/**
 * @author OfficeBrain 4505 <info@officebrain.com>
 *
 * Description :  Entity For Private Tag Language
 */

/**
 * PrivateTagLanguage.
 *
 * @ORM\Table(name="tbl_product_tag_language", options={"type"="InnoDB","charset"="utf8","collate"="utf8_unicode_ci"})
 * @ORM\Entity(repositoryClass="OfficeBrain\Bundle\ProductTagBundle\Entity\PrivateTagLanguageRepository")
 */
class PrivateTagLanguage
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="bigint", length=20, options={"unsigned"=true})
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * Bidirectional (OWNING SIDE - FK).
     *
     * @ORM\ManyToOne(targetEntity="\OfficeBrain\Bundle\ProductTagBundle\Entity\PrivateTagMaster", inversedBy="tags")
     * @ORM\JoinColumn(name="tag_id", nullable=false)
     */
    protected $tag;

    /**
     * @var int
     *
     * @ORM\Column(name="language_id",type="bigint", length=10, options={"unsigned"=true})
     */
    private $languageId;

    /**
     * @var string    
     * @ORM\Column(name="tag_name", type="string", length=255, options={"collate"="utf8_unicode_ci"})
     */
    private $tagName;

     /**
     * @var string
     *
     * @Gedmo\Slug(fields={"tagName"})
     * @ORM\Column(name="slug", type="string", nullable=true)
     */
    private $slug;

    /**
     * @var string
     * @ORM\Column(name="tag_description", type="text", options={"collate"="utf8_unicode_ci"}, nullable=true)
     */
    private $tagDescription;

    /**
     * Set languageId.
     *
     * @param int $languageId
     *
     * @return PrivateTagLanguage
     */
    public function setLanguageId($languageId)
    {
        $this->languageId = $languageId;

        return $this;
    }

    /**
     * Get languageId.
     *
     * @return int
     */
    public function getLanguageId()
    {
        return $this->languageId;
    }

    /**
     * Set tagName.
     *
     * @param string $tagName
     *
     * @return PrivateTagLanguage
     */
    public function setTagName($tagName)
    {
        $this->tagName = $tagName;

        return $this;
    }

    /**
     * Get tagName.
     *
     * @return string
     */
    public function getTagName()
    {
        return $this->tagName;
    }

    /**
     * Set tagDescription.
     *
     * @param string $tagDescription
     *
     * @return PrivateTagLanguage
     */
    public function setTagDescription($tagDescription)
    {
        $this->tagDescription = $tagDescription;

        return $this;
    }

    /**
     * Get tagDescription.
     *
     * @return string
     */
    public function getTagDescription()
    {
        return $this->tagDescription;
    }

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

    /**
     * Set tag.
     *
     * @param \OfficeBrain\Bundle\ProductTagBundle\Entity\PrivateTagMaster $tag
     *
     * @return PrivateTagLanguage
     */
    public function setTag(\OfficeBrain\Bundle\ProductTagBundle\Entity\PrivateTagMaster $tag = null)
    {
        $this->tag = $tag;

        return $this;
    }

    /**
     * Get tag.
     *
     * @return \OfficeBrain\Bundle\ProductTagBundle\Entity\PrivateTagMaster
     */
    public function getTag()
    {
        return $this->tag;
    }

    /**
     * Set slug
     *
     * @param string $slug
     *
     * @return PrivateTagLanguage
     */
    public function setSlug($slug)
    {
        $this->slug = $slug;

        return $this;
    }

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