<?phpdeclare(strict_types=1);namespace App\Supplier\Doctrine\Entity;use App\Shop\Doctrine\Entity\Product;use App\Shop\Doctrine\Entity\Taxonomy as BaseTaxonomy;use App\Supplier\Doctrine\Repository\TaxonomyRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping\Column;use Doctrine\ORM\Mapping\Entity;use Doctrine\ORM\Mapping\GeneratedValue;use Doctrine\ORM\Mapping\Id;use Doctrine\ORM\Mapping\Index;use Doctrine\ORM\Mapping\JoinColumn;use Doctrine\ORM\Mapping\ManyToOne;use Doctrine\ORM\Mapping\OneToMany;use Doctrine\ORM\Mapping\Table;#[Entity(repositoryClass: TaxonomyRepository::class)]#[Table(name: 'supplier_taxonomy')]#[Index(columns: ['hash', 'supplier_id'], name: 'hash_supplier_id')]class Taxonomy{ #[Id] #[Column(type: 'integer')] #[GeneratedValue] private ?int $id = null; #[Column] private string $hash; #[Column] private string $name; /** * @var array<array-key, string> */ #[Column(type: 'array')] private array $hierarchy = []; #[ManyToOne(targetEntity: Supplier::class)] #[JoinColumn(nullable: false)] private Supplier $supplier; #[ManyToOne(targetEntity: BaseTaxonomy::class)] private ?BaseTaxonomy $taxonomy = null; /** * @var Collection<array-key, Product> */ #[OneToMany(mappedBy: 'supplierTaxonomy', targetEntity: Product::class)] private Collection $products; public function __construct() { $this->products = new ArrayCollection(); } public function getId(): ?int { return $this->id; } public function getHash(): string { return $this->hash; } public function setHash(string $hash): void { $this->hash = $hash; } public function getName(): string { return $this->name; } public function setName(string $name): void { $this->name = $name; } /** * @return array<array-key, string> */ public function getHierarchy(): array { return $this->hierarchy; } /** * @param array<array-key, string> $hierarchy */ public function setHierarchy(array $hierarchy): void { $this->hierarchy = $hierarchy; } public function getSupplier(): Supplier { return $this->supplier; } public function setSupplier(Supplier $supplier): void { $this->supplier = $supplier; } public function getTaxonomy(): ?BaseTaxonomy { return $this->taxonomy; } public function setTaxonomy(?BaseTaxonomy $taxonomy): void { $this->taxonomy = $taxonomy; } /** * @return Collection<array-key, Product> */ public function getProducts(): Collection { return $this->products; }}