<?php namespace App\Shared\Entity; use App\News\Dto\NewsCategoryDto; use App\Shared\Abstraction\DtoInterface; use App\Shared\Abstraction\EntityInterface; use App\Shared\Repository\NewsCategoriesRepository; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; #[ORM\Entity(repositoryClass: NewsCategoriesRepository::class)] class NewsCategories implements EntityInterface { #[ORM\Id] #[ORM\Column(type: Types::GUID)] private ?string $id = null; #[ORM\Column(length: 255)] private ?string $name = null; #[ORM\Column(length: 255)] private ?string $code = null; /** * @var Collection<int, News> */ #[ORM\ManyToMany(targetEntity: News::class, mappedBy: 'categories')] private Collection $news; public function __construct() { $this->news = new ArrayCollection(); } public function getId(): ?string { return $this->id; } public function setId(string $id): static { $this->id = $id; return $this; } public function getName(): ?string { return $this->name; } public function setName(string $name): static { $this->name = $name; return $this; } public function getCode(): ?string { return $this->code; } public function setCode(string $code): static { $this->code = $code; return $this; } /** * @return Collection<int, News> */ public function getNews(): Collection { return $this->news; } public function addNews(News $news): static { if (!$this->news->contains($news)) { $this->news->add($news); $news->addCategory($this); } return $this; } public function removeNews(News $news): static { if ($this->news->removeElement($news)) { $news->removeCategory($this); } return $this; } }