<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Brands
*
* @ORM\Table(name="brands")
* @ORM\Entity(repositoryClass="App\Repository\BrandRepository")
*/
class Brand
{
/**
* @var int
*
* @ORM\Column(name="brand_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="_id", type="string", nullable=true)
*/
protected $_id;
/**
* @var string
*
* @ORM\Column(name="label", type="string", length=255, nullable=false)
*/
private $label;
/**
* @var string|null
*
* @ORM\Column(name="keywordslist", type="string", length=255, nullable=true)
*/
private $keywordslist;
/**
* @var string|null
*
* @ORM\Column(name="personal_note", type="string", length=255, nullable=true)
*/
private $personalNote;
/**
* @var string|null
*
* @ORM\Column(name="www", type="string", length=255, nullable=true)
*/
private $www;
/**
* @var string|null
*
* @ORM\Column(name="brandtags", type="string", length=255, nullable=true)
*/
private $brandtags;
/**
* @var string|null
*
* @ORM\Column(name="color", type="string", length=255, nullable=true)
*/
private $color;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="App\Entity\Category", inversedBy="brands")
* @ORM\JoinTable(name="brand_has_category",
* joinColumns={
* @ORM\JoinColumn(name="brand_id", referencedColumnName="brand_id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="category_id", referencedColumnName="category_id")
* }
* )
*/
private $categories;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="App\Entity\Shop", mappedBy="brands")
*/
private $shops;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $primaryCategory;
/**
* Constructor
*/
public function __construct()
{
$this->categories = new \Doctrine\Common\Collections\ArrayCollection();
$this->shops = new \Doctrine\Common\Collections\ArrayCollection();
}
/************************************************************************************************************/
/****** COLLECTIONS METHODS *********************************************************************************/
/************************************************************************************************************/
/**
* @param \App\Entity\Category $category
* @return bool
*/
public function addCategory(Category $category)
{
return $this->categories->add($category);
}
/**
* @param \App\Entity\Category $category
* @return mixed|null
*/
public function removeCategory(Category $category)
{
return $this->categories->remove($category);
}
/**
* @param \App\Entity\Shop $shop
* @return bool
*/
public function addShop(Shop $shop)
{
return $this->shops->add($shop);
}
/**
* @param \App\Entity\Shop $shop
* @return mixed|null
*/
public function removeShop(Shop $shop)
{
return $this->shops->remove($shop);
}
/**
* @return \Doctrine\Common\Collections\Collection|\App\Entity\Category[]
*/
public function getCategories(): \Doctrine\Common\Collections\Collection
{
return $this->categories;
}
/**
* @return \Doctrine\Common\Collections\Collection|\App\Entity\Shop[]
*/
public function getShops(): \Doctrine\Common\Collections\Collection
{
return $this->shops;
}
/************************************************************************************************************/
/****** GETTERS & SETTERS ***********************************************************************************/
/************************************************************************************************************/
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @return string
*/
public function getLabel(): ?string
{
return $this->label;
}
/**
* @param string $label
*/
public function setLabel(string $label): void
{
$this->label = $label;
}
/**
* @return string|null
*/
public function getKeywordslist(): ?string
{
return $this->keywordslist;
}
/**
* @param string|null $keywordslist
*/
public function setKeywordslist(?string $keywordslist): void
{
$this->keywordslist = $keywordslist;
}
/**
* @return string|null
*/
public function getPersonalNote(): ?string
{
return $this->personalNote;
}
/**
* @param string|null $personalNote
*/
public function setPersonalNote(?string $personalNote): void
{
$this->personalNote = $personalNote;
}
/**
* @return string|null
*/
public function getWww(): ?string
{
return $this->www;
}
/**
* @param string|null $www
*/
public function setWww(?string $www): void
{
$this->www = $www;
}
/**
* @return string|null
*/
public function getBrandtags(): ?string
{
return $this->brandtags;
}
/**
* @param string|null $brandtags
*/
public function setBrandtags(?string $brandtags): void
{
$this->brandtags = $brandtags;
}
/**
* @return string|null
*/
public function getColor(): ?string
{
return $this->color;
}
/**
* @param string|null $color
*/
public function setColor(?string $color): void
{
$this->color = $color;
}
/**
* Return data in array. Used by REST API
*
* @return array
*/
public function toArray()
{
return [
'id' => $this->getId(),
'label' => $this->getLabel(),
'keywords' => $this->getKeywordslist(),
'personal_note' => $this->getPersonalNote(),
'www' => $this->getWww(),
'brandtags' => $this->getBrandtags(),
'color' => $this->getColor(),
];
}
/**
* @return string|null
*/
public function __toString()
{
return $this->getLabel();
}
public function getPrimaryCategory(): ?string
{
return $this->primaryCategory;
}
public function setPrimaryCategory(?string $primaryCategory): self
{
$this->primaryCategory = $primaryCategory;
return $this;
}
}