<?php
namespace App\AtechNet\CoreBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\HasLifecycleCallbacks;
use Doctrine\ORM\Mapping\ManyToMany;
use Doctrine\ORM\Mapping\OneToMany;
use Doctrine\ORM\Mapping\OrderBy;
use Doctrine\ORM\Mapping\Table as Table;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Album
*
* @Table(name="vendors")
* @Entity
* @HasLifecycleCallbacks
*/
class Vendor extends AbstractSortableEntity
{
public const VENDOR_ID_HP = 28;
public const VENDOR_ID_DELL = 18;
public const VENDOR_ID_LENOVO = 32;
public const VENDOR_ID_APPLE = 70;
public const VENDOR_OD_ESET = 21;
public const VENDOR_MICROSOFT = 39;
public const MAIN_NOTEBOOK_VENDOR_LIST = [
self::VENDOR_ID_DELL,
self::VENDOR_ID_HP,
self::VENDOR_ID_LENOVO,
self::VENDOR_ID_APPLE,
];
/**
* @var string
*
* @Assert\NotNull
*
* @Column(name="name", type="text")
*/
private $name;
/**
* @var ArrayCollection
*
* @OneToMany(targetEntity="VendorMeta", mappedBy="vendor", cascade={"persist", "remove"})
**/
private $metas;
/**
* @var ArrayCollection
*
* @ManyToMany(targetEntity="CategoryPage", mappedBy="vendors")
* @OrderBy({"id" = "DESC"})
*/
private $categoryPages;
/**
* @var int
*
* @Column(name="priority", type="integer", length=5, nullable=true)
*/
private $priority;
/**
* @var string|null
*
* @Column(name="base_manufacturer_id", type="string", length=16, nullable=true)
*/
private $baseManufacturerId;
public function __construct()
{
parent::__construct();
$this->customers = new ArrayCollection();
$this->metas = new ArrayCollection();
}
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
* @return ArrayCollection
*/
public function getMetas()
{
return $this->metas;
}
/**
* @param Domain $domain
* @return VendorMeta|null
*/
public function getDomainMeta(Domain $domain)
{
if ($this->getMetas()->count() > 0) {
foreach ($this->getMetas() as $meta) {
if ($meta->getDomain()->getId() == $domain->getId()) {
return $meta;
}
}
}
return null;
}
/**
* @return ArrayCollection
*/
public function getCategoryPages()
{
return $this->categoryPages;
}
/**
* @param ArrayCollection $categoryPages
*/
public function setCategoryPages($categoryPages)
{
$this->categoryPages = $categoryPages;
}
/**
* @return int|null
*/
public function getPriority(): ?int
{
return $this->priority;
}
/**
* @param int|null $priority
*/
public function setPriority(?int $priority)
{
$this->priority = $priority;
}
/**
* @return string|null
*/
public function getBaseManufacturerId(): ?string
{
return $this->baseManufacturerId;
}
/**
* @param string $baseManufacturerId
*/
public function setBaseManufacturerId($baseManufacturerId)
{
$this->baseManufacturerId = $baseManufacturerId;
}
}