<?phpnamespace App\Entity;use App\Repository\ClassLevelRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: ClassLevelRepository::class)]class ClassLevel{ #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\Column(length: 255)] private ?string $name = null; #[ORM\Column(length: 255)] private ?string $nameEn = null; #[ORM\Column] private ?int $level = null; #[ORM\OneToMany(mappedBy: 'classLevel', targetEntity: TheClass::class)] private Collection $classes; #[ORM\ManyToOne(inversedBy: 'classLevels')] #[ORM\JoinColumn(nullable: false)] private ?CycleLevel $cycle = null; #[ORM\OneToMany(mappedBy: 'level', targetEntity: ClassOption::class, orphanRemoval: true)] private Collection $classOptions; public function __construct() { $this->classes = new ArrayCollection(); $this->classOptions = new ArrayCollection(); } public function __toString(): string { return $this->name . ' - ' . $this->nameEn; } public function getId(): ?int { return $this->id; } public function getName(): ?string { return $this->name; } public function setName(string $name): static { $this->name = $name; return $this; } public function getNameEn(): ?string { return $this->nameEn; } public function setNameEn(string $nameEn): static { $this->nameEn = $nameEn; return $this; } public function getLevel(): ?int { return $this->level; } public function setLevel(int $level): static { $this->level = $level; return $this; } /** * @return Collection<int, TheClass> */ public function getClasses(): Collection { return $this->classes; } public function addClass(TheClass $class): static { if (!$this->classes->contains($class)) { $this->classes->add($class); $class->setClassLevel($this); } return $this; } public function removeClass(TheClass $class): static { if ($this->classes->removeElement($class)) { // set the owning side to null (unless already changed) if ($class->getClassLevel() === $this) { $class->setClassLevel(null); } } return $this; } public function getCycle(): ?CycleLevel { return $this->cycle; } public function setCycle(?CycleLevel $cycle): static { $this->cycle = $cycle; return $this; } /** * @return Collection<int, ClassOption> */ public function getClassOptions(): Collection { return $this->classOptions; } public function addClassOption(ClassOption $classOption): static { if (!$this->classOptions->contains($classOption)) { $this->classOptions->add($classOption); $classOption->setLevel($this); } return $this; } public function removeClassOption(ClassOption $classOption): static { if ($this->classOptions->removeElement($classOption)) { // set the owning side to null (unless already changed) if ($classOption->getLevel() === $this) { $classOption->setLevel(null); } } return $this; }}