<?php
namespace App\Entity\System;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* Taxonomy
*
* @ORM\Table(name="taxonomy")
*
* @ORM\Entity(repositoryClass="App\Repository\System\TaxonomyRepository")
*/
class Taxonomy extends AbstractCategory
{
public const MAX_NUM_TAXONOMY_BY_DEPTH = [
1 => null,
2 => null,
];
public const MAX_DEPTH_LEVEL = 2;
public const EXCLUDED_IDS_FROM_MENU = [31548];
public const ECOMMERCE_TAXONOMY_ID = 31557;
public const MARKETPLACES_TAXONOMY_ID = 31558;
public const ACADEMY_TAXONOMY_ID = 31559;
public const PACKS_TAXONOMY_ID = 31549;
public const PRESTASHOP_SHOPS_TAXONOMY_ID = 31555;
public const SHOPIFY_SHOPS_TAXONOMY_ID = 31554;
public const COURSES_TAXONOMIES_IDS = [self::ACADEMY_TAXONOMY_ID];
public const ELECTRONICS_ID = 19653;
public const COMPUTING_ID = 19685;
public const SEX_ID = 17088;
public const GARDEN_ID = 19661;
public const TAXONOMIES_SERVICES = [
self::PACKS_TAXONOMY_ID,
self::PRESTASHOP_SHOPS_TAXONOMY_ID,
self::ECOMMERCE_TAXONOMY_ID,
self::MARKETPLACES_TAXONOMY_ID,
self::SHOPIFY_SHOPS_TAXONOMY_ID,
self::ACADEMY_TAXONOMY_ID,
];
/**
* @var int
*
* @ORM\Column(type="integer")
*
* @ORM\Id
*/
protected $id;
/**
* @var Taxonomy
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\Taxonomy", inversedBy="children")
*
* @ORM\JoinColumn(referencedColumnName="id", name="id_parent")
*/
protected $parent;
/**
* @var ArrayCollection|TaxonomyLanguage[]
*
* @ORM\OneToMany(targetEntity="TaxonomyLanguage", mappedBy="taxonomy", cascade={"persist"}, indexBy="id_lang")
*
* @ORM\JoinColumn(referencedColumnName="id_taxonomy", name="id")
*/
protected $langs;
/**
* @var ArrayCollection|Taxonomy[]
*
* @ORM\OneToMany (targetEntity="App\Entity\System\Taxonomy", mappedBy="parent")
*/
private $children;
/**
* @var Product[]|Collection
*
* @ORM\ManyToMany(targetEntity="App\Entity\System\Product", mappedBy="taxonomies")
*/
private $products;
/**
* @var ProductImage
*
* @ORM\ManyToOne(targetEntity="ProductImage")
*
* @ORM\JoinColumn(name="id_image", referencedColumnName="id_image")
*/
private $image;
public function __construct()
{
parent::__construct();
$this->products = new ArrayCollection();
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id): void
{
$this->id = $id;
}
/**
* @return Taxonomy|null
*/
public function getParent(): ?Taxonomy
{
return $this->parent;
}
/**
* @param Taxonomy $parent
*/
public function setParent(Taxonomy $parent): void
{
$this->parent = $parent;
}
/**
* @return TaxonomyLanguage[]|ArrayCollection
*/
public function getLangs()
{
return $this->langs;
}
/**
* @param TaxonomyLanguage[]|ArrayCollection $langs
*/
public function setLangs($langs): void
{
$this->langs = $langs;
}
/**
* @return Taxonomy[]|ArrayCollection
*/
public function getChildren()
{
return $this->children;
}
/**
* @param Taxonomy[]|ArrayCollection $children
*/
public function setChildren($children): void
{
$this->children = $children;
}
/**
* @return Product[]|Collection
*/
public function getProducts()
{
return $this->products;
}
/**
* @param Product[]|Collection $products
*/
public function setProducts($products): void
{
$this->products = $products;
}
/**
* @param ProductImage|null $image
*/
public function setImage(?ProductImage $image): void
{
$this->image = $image;
}
}