<?php
namespace App\Entity;
use App\Entity\Translation\SponsorCategoryTranslation;
use App\Repository\SponsorCategoryRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Gedmo\Translatable\Translatable;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Serializer\Annotation\Ignore;
/**
* @ORM\Entity(repositoryClass=SponsorCategoryRepository::class)
* @Gedmo\TranslationEntity(class="App\Entity\Translation\SponsorCategoryTranslation")
*/
class SponsorCategory implements Translatable
{
use SetTranslationsTrait;
public const FIELDS = [
'name'
];
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
* @Groups("sponsorcategory:list", "sponsorcategory:item", "sponsor:list", "sponsor:item")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
* @Groups("sponsorcategory:list", "sponsorcategory:item", "sponsor:list", "sponsor:item")
* @Gedmo\Translatable
*/
private $name;
/**
* @var string
* @Ignore()
*/
private $nameEn;
/**
* @var string
* @Ignore()
*/
private $nameCa;
/**
* @ORM\Column(type="integer",nullable=true, name="sort")
* @Groups("sponsorcategory:list", "sponsorcategory:item", "sponsor:list", "sponsor:item")
* @var int|null
*/
private $sort;
/**
* @ORM\OneToMany(targetEntity=Sponsor::class, mappedBy="category")
* @Ignore()
*
*/
private $sponsors;
/**
* @Gedmo\Locale
*/
private $locale;
/**
* @ORM\OneToMany(
* targetEntity="App\Entity\Translation\SponsorCategoryTranslation",
* mappedBy="object",
* cascade={"persist", "remove"}
* )
* @Ignore()
*/
private $translations;
public function __construct()
{
$this->sponsors = new ArrayCollection();
$this->translations = new ArrayCollection();
}
public function __toString()
{
return $this->name;
}
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
/**
* @return Collection|Sponsor[]
*/
public function getSponsors(): Collection
{
return $this->sponsors;
}
public function addSponsor(Sponsor $sponsor): self
{
if (!$this->sponsors->contains($sponsor)) {
$this->sponsors[] = $sponsor;
$sponsor->setCategory($this);
}
return $this;
}
public function removeSponsor(Sponsor $sponsor): self
{
if ($this->sponsors->removeElement($sponsor)) {
// set the owning side to null (unless already changed)
if ($sponsor->getCategory() === $this) {
$sponsor->setCategory(null);
}
}
return $this;
}
public function getNameEn()
{
return $this->nameEn;
}
public function setNameEn($nameEn): void
{
$this->nameEn = $nameEn;
}
public function getNameCa()
{
return $this->nameCa;
}
public function setNameCa($nameCa)
{
$this->nameCa = $nameCa;
}
public function setTranslatableLocale($locale)
{
$this->locale = $locale;
}
public function getTranslations()
{
return $this->translations;
}
public function addTranslation(SponsorCategoryTranslation $t)
{
if (!$this->translations->contains($t)) {
$this->translations[] = $t;
$t->setObject($this);
}
}
/**
* @return int|null
*/
public function getSort(): ?int
{
return $this->sort;
}
/**
* @param int|null $sort
* @return void
*/
public function setSort(?int $sort): void
{
$this->sort = $sort;
}
}