<?php
namespace App\Entity;
use App\Service\Helper\SlugHelper;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
*
* @ORM\Table(name="brands__brands", indexes={
* @ORM\Index(name="name_idx", columns={"name"}),
* @ORM\Index(name="legal_name_idx", columns={"legal_name"}),
* @ORM\Index(name="car_manufacturer_idx", columns={"car_manufacturer"})
* }
*)
* @ORM\Entity(repositoryClass="App\Repository\BrandRepository")
*/
class Brand
{
use IdTrait;
/**
* @ORM\Column(name="name", unique=true, type="string", nullable=false)
*/
private string $name;
/**
* @ORM\Column(name="legal_name", unique=true, type="string", nullable=true)
*/
private string $legalName;
/**
* @ORM\Column(name="car_manufacturer", type="boolean", options={"default":0})
*/
private bool $carManufacturer;
/**
* @ORM\Column(name="slug", type="string", unique=true, nullable=false)
*/
private string $slug;
/**
* @var Collection|BrandAlias[]
* @ORM\OneToMany(targetEntity="App\Entity\BrandAlias", mappedBy="brand")
*/
private $aliases;
public function __construct($name, $carManufacturer = false)
{
$this->name = $name;
$this->legalName = $name;
$this->slug = SlugHelper::slugify($name);
$this->carManufacturer = $carManufacturer;
$this->aliases = new ArrayCollection();
}
public function getName(): string
{
return $this->name;
}
public function getLegalName(): string
{
return $this->legalName;
}
public function getCarManufacturer()
{
return $this->carManufacturer;
}
public function getSlug(): string
{
return $this->slug;
}
/**
* @return BrandAlias[]|Collection
*/
public function getAliases()
{
return $this->aliases;
}
}