<?phpnamespace App\Entity;use App\Entity\Traits\TimeStampable;use App\Repository\EvaluationRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Serializer\Annotation\Groups;#[ORM\Entity(repositoryClass: EvaluationRepository::class)]#[ORM\HasLifecycleCallbacks]class Evaluation{ use TimeStampable; #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] #[Groups(['critere:read'])] private ?int $id = null; #[ORM\Column] private ?int $note = null; #[ORM\ManyToOne(inversedBy: 'evaluations')] private ?User $createdBy = null; #[ORM\Column] private ?int $status = null; #[ORM\OneToOne(inversedBy: 'evaluation', cascade: ['persist', 'remove'])] private ?Objectif $objectif = null; #[ORM\OneToMany(mappedBy: 'evaluation', targetEntity: EvaluationCritere::class)] private Collection $evaluationCriteres; public function __construct() { $this->evaluationCriteres = new ArrayCollection(); $this->createdAt = new \DateTimeImmutable(); $this->status = 1; $this->note = 0; $this->updatedAt = new \DateTimeImmutable(); } public function getId(): ?int { return $this->id; } public function getNote(): ?int { return $this->note; } public function setNote(int $note): static { $this->note = $note; return $this; } public function getCreatedBy(): ?User { return $this->createdBy; } public function setCreatedBy(?User $createdBy): static { $this->createdBy = $createdBy; return $this; } public function getStatus(): ?int { return $this->status; } public function setStatus(int $status): static { $this->status = $status; return $this; } public function getObjectif(): ?Objectif { return $this->objectif; } public function setObjectif(?Objectif $objectif): static { $this->objectif = $objectif; return $this; } /** * @return Collection<int, EvaluationCritere> */ public function getEvaluationCriteres(): Collection { return $this->evaluationCriteres; } public function addEvaluationCritere(EvaluationCritere $evaluationCritere): static { if (!$this->evaluationCriteres->contains($evaluationCritere)) { $this->evaluationCriteres->add($evaluationCritere); $evaluationCritere->setEvaluation($this); } return $this; } public function removeEvaluationCritere(EvaluationCritere $evaluationCritere): static { if ($this->evaluationCriteres->removeElement($evaluationCritere)) { // set the owning side to null (unless already changed) if ($evaluationCritere->getEvaluation() === $this) { $evaluationCritere->setEvaluation(null); } } return $this; }}