<?php
/**
* Created by PhpStorm.
* User: lisavandaele
* Date: 30/01/15
* Time: 12:53
*/
namespace Notaris\AdminBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass="VideoRepository")
* @ORM\Table(name="video")
*/
class Video {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Notaris\AdminBundle\Entity\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="SET NULL")
*/
private $user;
/**
* @Gedmo\Timestampable(on="create")
* @ORM\Column(name="created", type="datetime")
*/
private $created;
/**
* @ORM\Column(name="updated", type="datetime")
* @Gedmo\Timestampable(on="update")
*/
private $updated;
/**
* @var string
*
* @ORM\Column(name="locale", type="string", length=5)
*/
private $locale;
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=255)
*/
private $title;
/**
* @Gedmo\Slug(fields={"title"})
* @ORM\Column(length=128, unique=true)
*/
private $slug;
/**
* @ORM\Column(type="text", name="description")
*/
private $description;
/**
* @ORM\OneToOne(targetEntity="Asset")
* @ORM\JoinColumn(name="asset_id", referencedColumnName="id")
*/
protected $asset;
/**
* @var integer
*
* @ORM\Column(type="integer", name="minutes", nullable=true)
*/
private $minutes;
/**
* @var string
*
* @ORM\Column(name="source", type="string", length=255)
*/
private $source;
/**
* @ORM\Column(type="boolean", name="is_active")
* @Assert\Type("boolean")
*/
private $isActive;
/**
* @ORM\Column(name="pub_date", type="datetime")
*/
private $publicationDate;
/**
* @ORM\OneToOne(targetEntity="News", inversedBy="video", cascade={"remove"})
* @ORM\JoinColumn(name="news_id", referencedColumnName="id", onDelete="SET NULL")
*/
protected $news;
/**
* @ORM\OneToOne(targetEntity="NewsIzimiInfo", inversedBy="video", cascade={"remove"})
* @ORM\JoinColumn(name="news_izimi_info_id", referencedColumnName="id", onDelete="SET NULL")
*/
protected $newsIzimiInfo;
/**
* @ORM\Column(type="boolean", name="is_varia")
* @Assert\Type("boolean")
*/
private $isVaria;
/**
* @ORM\Column(type="boolean", name="is_varia_primary", nullable=true)
* @Assert\Type("boolean")
*/
private $isVariaPrimary;
/**
* @var integer
*
* @ORM\Column(type="integer", name="varia_position", nullable=true)
*/
private $variaPosition;
/**
* @ORM\ManyToOne(targetEntity="Notaris\AdminBundle\Entity\Subsite")
* @ORM\JoinColumn(name="primary_subsite", referencedColumnName="id", onDelete="SET NULL")
*/
private $primarySubsite;
/**
* @ORM\ManyToMany(targetEntity="Tag", inversedBy="videos")
* @ORM\JoinTable(name="tag_video")
*/
protected $tags;
/**
* @ORM\OneToMany(targetEntity="VideoSubsite", mappedBy="video")
* @ORM\OrderBy({"position" = "asc"})
*/
private $subsites;
/**
* @ORM\ManyToMany(targetEntity="IzimiCategory")
* @ORM\JoinTable(name="video_izimi_category")
*/
protected $categories;
/**
* @ORM\Column(type="boolean", name="is_izimi")
* @Assert\Type("boolean")
*/
private $isIzimi;
/**
* @ORM\OneToOne(targetEntity="Meta")
* @ORM\JoinColumn(name="meta_id", referencedColumnName="id")
*/
protected $meta;
/**
* @var integer
*
* @ORM\Column(type="integer", name="count_clicked")
*/
private $countClicked = 0;
/**
* Constructor
*/
public function __construct()
{
$this->tags = new \Doctrine\Common\Collections\ArrayCollection();
$this->isIzimi = false;
}
/**
* @return string
*/
public function getRelatedTo(){
if($this->getSubsites()){
$default_general = 'Varia';
$count = count($this->getSubsites());
if(!$count && $this->getIsVaria()){
return $default_general;
}
elseif($count>=1){
if($this->getPrimarySubsite()){
return $this->getPrimarySubsite();
}
elseif($this->getIsVariaPrimary()){
return $default_general;
}
else{
$subsites = $this->getSubsites();
return $subsites[0]->getSubsite();
}
}
}
return '';
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set created
*
* @param \DateTime $created
* @return Video
*/
public function setCreated($created)
{
$this->created = $created;
return $this;
}
/**
* Get created
*
* @return \DateTime
*/
public function getCreated()
{
return $this->created;
}
/**
* Set updated
*
* @param \DateTime $updated
* @return Video
*/
public function setUpdated($updated)
{
$this->updated = $updated;
return $this;
}
/**
* Get updated
*
* @return \DateTime
*/
public function getUpdated()
{
return $this->updated;
}
/**
* Set locale
*
* @param string $locale
* @return Video
*/
public function setLocale($locale)
{
$this->locale = $locale;
return $this;
}
/**
* Get locale
*
* @return string
*/
public function getLocale()
{
return $this->locale;
}
/**
* Set title
*
* @param string $title
* @return Video
*/
public function setTitle($title)
{
$this->title = $title;
return $this;
}
/**
* Get title
*
* @return string
*/
public function getTitle()
{
return $this->title;
}
/**
* Set slug
*
* @param string $slug
* @return Video
*/
public function setSlug($slug)
{
$this->slug = $slug;
return $this;
}
/**
* Get slug
*
* @return string
*/
public function getSlug()
{
return $this->slug;
}
/**
* Set description
*
* @param string $description
* @return Video
*/
public function setDescription($description)
{
$this->description = $description;
return $this;
}
/**
* Get description
*
* @return string
*/
public function getDescription()
{
return $this->description;
}
/**
* Set minutes
*
* @param integer $minutes
* @return Video
*/
public function setMinutes($minutes)
{
$this->minutes = $minutes;
return $this;
}
/**
* Get minutes
*
* @return integer
*/
public function getMinutes()
{
return $this->minutes;
}
/**
* Set source
*
* @param string $source
* @return Video
*/
public function setSource($source)
{
$this->source = $source;
return $this;
}
/**
* Get source
*
* @return string
*/
public function getSource()
{
return $this->source;
}
/**
* Set publicationDate
*
* @param \DateTime $publicationDate
* @return Video
*/
public function setPublicationDate($publicationDate)
{
$this->publicationDate = $publicationDate;
return $this;
}
/**
* Get publicationDate
*
* @return \DateTime
*/
public function getPublicationDate()
{
return $this->publicationDate;
}
/**
* Set isVaria
*
* @param boolean $isVaria
* @return Video
*/
public function setIsVaria($isVaria)
{
$this->isVaria = $isVaria;
return $this;
}
/**
* Get isVaria
*
* @return boolean
*/
public function getIsVaria()
{
return $this->isVaria;
}
/**
* Set user
*
* @param \Notaris\AdminBundle\Entity\User $user
* @return Video
*/
public function setUser(\Notaris\AdminBundle\Entity\User $user = null)
{
$this->user = $user;
return $this;
}
/**
* Get user
*
* @return \Notaris\AdminBundle\Entity\User
*/
public function getUser()
{
return $this->user;
}
/**
* Set news
*
* @param \Notaris\AdminBundle\Entity\News $news
* @return Video
*/
public function setNews(\Notaris\AdminBundle\Entity\News $news = null)
{
$this->news = $news;
return $this;
}
/**
* Get news
*
* @return \Notaris\AdminBundle\Entity\News
*/
public function getNews()
{
return $this->news;
}
/**
* Set primarySubsite
*
* @param \Notaris\AdminBundle\Entity\Subsite $primarySubsite
* @return Video
*/
public function setPrimarySubsite(\Notaris\AdminBundle\Entity\Subsite $primarySubsite = null)
{
$this->primarySubsite = $primarySubsite;
return $this;
}
/**
* Get primarySubsite
*
* @return \Notaris\AdminBundle\Entity\Subsite
*/
public function getPrimarySubsite()
{
return $this->primarySubsite;
}
/**
* Add tags
*
* @param \Notaris\AdminBundle\Entity\Tag $tags
* @return Video
*/
public function addTag(\Notaris\AdminBundle\Entity\Tag $tags)
{
$this->tags[] = $tags;
return $this;
}
/**
* Remove tags
*
* @param \Notaris\AdminBundle\Entity\Tag $tags
*/
public function removeTag(\Notaris\AdminBundle\Entity\Tag $tags)
{
$this->tags->removeElement($tags);
}
/**
* Get tags
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getTags()
{
return $this->tags;
}
/**
* Set meta
*
* @param \Notaris\AdminBundle\Entity\Meta $meta
* @return Video
*/
public function setMeta(\Notaris\AdminBundle\Entity\Meta $meta = null)
{
$this->meta = $meta;
return $this;
}
/**
* Get meta
*
* @return \Notaris\AdminBundle\Entity\Meta
*/
public function getMeta()
{
return $this->meta;
}
/**
* Set isActive
*
* @param boolean $isActive
* @return Video
*/
public function setIsActive($isActive)
{
$this->isActive = $isActive;
return $this;
}
/**
* Get isActive
*
* @return boolean
*/
public function getIsActive()
{
return $this->isActive;
}
/**
* Add subsites
*
* @param \Notaris\AdminBundle\Entity\VideoSubsite $subsites
* @return Video
*/
public function addSubsite(\Notaris\AdminBundle\Entity\VideoSubsite $subsites)
{
$this->subsites[] = $subsites;
return $this;
}
/**
* Remove subsites
*
* @param \Notaris\AdminBundle\Entity\VideoSubsite $subsites
*/
public function removeSubsite(\Notaris\AdminBundle\Entity\VideoSubsite $subsites)
{
$this->subsites->removeElement($subsites);
}
/**
* Get subsites
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getSubsites()
{
$activeSubsites = [];
foreach ($this->subsites as $sub){
if($sub->getSubsite()->getIsActive()){
$activeSubsites[] = $sub;
}
}
return $activeSubsites;
}
/**
* Set asset
*
* @param \Notaris\AdminBundle\Entity\Asset $asset
* @return Video
*/
public function setAsset(\Notaris\AdminBundle\Entity\Asset $asset = null)
{
$this->asset = $asset;
return $this;
}
/**
* Get asset
*
* @return \Notaris\AdminBundle\Entity\Asset
*/
public function getAsset()
{
return $this->asset;
}
/**
* Set isVariaPrimary
*
* @param boolean $isVariaPrimary
* @return Video
*/
public function setIsVariaPrimary($isVariaPrimary)
{
$this->isVariaPrimary = $isVariaPrimary;
return $this;
}
/**
* Get isVariaPrimary
*
* @return boolean
*/
public function getIsVariaPrimary()
{
return $this->isVariaPrimary;
}
/**
* Set variaPosition
*
* @param integer $variaPosition
* @return Video
*/
public function setVariaPosition($variaPosition)
{
$this->variaPosition = $variaPosition;
return $this;
}
/**
* Get variaPosition
*
* @return integer
*/
public function getVariaPosition()
{
return $this->variaPosition;
}
/**
* Set countClicked
*
* @param integer $countClicked
* @return Video
*/
public function setCountClicked($countClicked)
{
$this->countClicked = $countClicked;
return $this;
}
/**
* Get countClicked
*
* @return integer
*/
public function getCountClicked()
{
return $this->countClicked;
}
/**
* Add category
*
* @param \Notaris\AdminBundle\Entity\IzimiCategory $category
*
* @return Video
*/
public function addCategory(\Notaris\AdminBundle\Entity\IzimiCategory $category)
{
$this->categories[] = $category;
return $this;
}
/**
* Remove category
*
* @param \Notaris\AdminBundle\Entity\IzimiCategory $category
*/
public function removeCategory(\Notaris\AdminBundle\Entity\IzimiCategory $category)
{
$this->categories->removeElement($category);
}
/**
* Get categories
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getCategories()
{
return $this->categories;
}
/**
* Set isIzimi
*
* @param boolean $isIzimi
* @return Video
*/
public function setIsIzimi(bool $isIzimi)
{
$this->isIzimi = $isIzimi;
return $this;
}
/**
* Get isIzimi
*
* @return boolean
*/
public function getIsIzimi()
{
return $this->isIzimi;
}
}