<?phpnamespace App\Entity;use App\Entity\Traits\Timestampable;use App\Repository\PrimaryEvaluationRepository;use Doctrine\ORM\Mapping as ORM;/** * Évaluation mensuelle d'une école primaire/maternelle — instance locale, * copiée depuis PrimaryEvaluationReference (voir PrimaryEvaluationCopier), * rattachée à un Quarter réel de l'école. Remplace le simple entier * "evalNumber" utilisé initialement : PrimaryComponentNote/DailyAbsence/Late * s'y rattachent directement (voir leur champ $evaluation), au lieu d'un * entier + Quarter séparé — une seule source de vérité pour le trimestre * (accessible via getQuarter()) et pour le libellé affiché sur le bulletin * (getEvaluationName()). * * Éditable localement par l'école après copie (name/nameEn/evaluationName/ * evaluationNameEn/dates), comme Competence vis-à-vis de CompetenceReference. */#[ORM\HasLifecycleCallbacks]#[ORM\Entity(repositoryClass: PrimaryEvaluationRepository::class)]class PrimaryEvaluation{ use Timestampable; #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\ManyToOne] #[ORM\JoinColumn(nullable: false)] private ?Quarter $quarter = null; #[ORM\Column] private ?int $position = null; #[ORM\Column(length: 255)] private ?string $name = null; #[ORM\Column(length: 255, nullable: true)] private ?string $nameEn = null; #[ORM\Column(length: 255)] private ?string $evaluationName = null; #[ORM\Column(length: 255, nullable: true)] private ?string $evaluationNameEn = null; #[ORM\Column(type: 'date', nullable: true)] private ?\DateTimeInterface $startAt = null; #[ORM\Column(type: 'date', nullable: true)] private ?\DateTimeInterface $endAt = null; #[ORM\ManyToOne] private ?PrimaryEvaluationReference $sourceEvaluation = null; #[ORM\ManyToOne] #[ORM\JoinColumn(nullable: false)] private ?School $school = null; #[ORM\ManyToOne] #[ORM\JoinColumn(nullable: false)] private ?SchoolYear $year = null; #[ORM\ManyToOne] #[ORM\JoinColumn(nullable: false)] private ?User $author = null; #[ORM\ManyToOne] private ?User $editor = null; public function __toString(): string { return $this->name ?? ''; } public function getId(): ?int { return $this->id; } public function getQuarter(): ?Quarter { return $this->quarter; } public function setQuarter(?Quarter $quarter): static { $this->quarter = $quarter; return $this; } public function getPosition(): ?int { return $this->position; } public function setPosition(int $position): static { $this->position = $position; return $this; } 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 getEvaluationName(): ?string { return $this->evaluationName; } public function setEvaluationName(string $evaluationName): static { $this->evaluationName = $evaluationName; return $this; } public function getEvaluationNameEn(): ?string { return $this->evaluationNameEn; } public function setEvaluationNameEn(?string $evaluationNameEn): static { $this->evaluationNameEn = $evaluationNameEn; return $this; } public function getStartAt(): ?\DateTimeInterface { return $this->startAt; } public function setStartAt(?\DateTimeInterface $startAt): static { $this->startAt = $startAt; return $this; } public function getEndAt(): ?\DateTimeInterface { return $this->endAt; } public function setEndAt(?\DateTimeInterface $endAt): static { $this->endAt = $endAt; return $this; } public function getSourceEvaluation(): ?PrimaryEvaluationReference { return $this->sourceEvaluation; } public function setSourceEvaluation(?PrimaryEvaluationReference $sourceEvaluation): static { $this->sourceEvaluation = $sourceEvaluation; return $this; } public function getSchool(): ?School { return $this->school; } public function setSchool(?School $school): static { $this->school = $school; return $this; } public function getYear(): ?SchoolYear { return $this->year; } public function setYear(?SchoolYear $year): static { $this->year = $year; return $this; } public function getAuthor(): ?User { return $this->author; } public function setAuthor(?User $author): static { $this->author = $author; return $this; } public function getEditor(): ?User { return $this->editor; } public function setEditor(?User $editor): static { $this->editor = $editor; return $this; }}