src/Entity/PrimaryEvaluation.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\Traits\Timestampable;
  4. use App\Repository\PrimaryEvaluationRepository;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use JMS\Serializer\Annotation\Groups;
  7. /**
  8.  * Évaluation mensuelle d'une école primaire/maternelle — instance locale,
  9.  * copiée depuis PrimaryEvaluationReference (voir PrimaryEvaluationCopier),
  10.  * rattachée à un Quarter réel de l'école. Remplace le simple entier
  11.  * "evalNumber" utilisé initialement : PrimaryComponentNote/DailyAbsence/Late
  12.  * s'y rattachent directement (voir leur champ $evaluation), au lieu d'un
  13.  * entier + Quarter séparé — une seule source de vérité pour le trimestre
  14.  * (accessible via getQuarter()) et pour le libellé affiché sur le bulletin
  15.  * (getEvaluationName()).
  16.  *
  17.  * Éditable localement par l'école après copie (name/nameEn/evaluationName/
  18.  * evaluationNameEn/dates), comme Competence vis-à-vis de CompetenceReference.
  19.  */
  20. #[ORM\HasLifecycleCallbacks]
  21. #[ORM\Entity(repositoryClassPrimaryEvaluationRepository::class)]
  22. class PrimaryEvaluation
  23. {
  24.     use Timestampable;
  25.     #[ORM\Id]
  26.     #[ORM\GeneratedValue]
  27.     #[ORM\Column]
  28.     #[Groups(['getLate'])]
  29.     private ?int $id null;
  30.     #[ORM\ManyToOne]
  31.     #[ORM\JoinColumn(nullablefalse)]
  32.     private ?Quarter $quarter null;
  33.     #[ORM\Column]
  34.     private ?int $position null;
  35.     // Résolution publique du bulletin mensuel (QR code, voir
  36.     // PrimaryReportCardParentController) — même patron que TheClass/Quarter/
  37.     // StudentYear::$slug (non énumérable, contrairement à l'id auto-incrémenté).
  38.     #[ORM\Column(length255nullabletrueuniquetrue)]
  39.     private ?string $slug null;
  40.     #[ORM\Column(length255)]
  41.     #[Groups(['getLate'])]
  42.     private ?string $name null;
  43.     #[ORM\Column(length255nullabletrue)]
  44.     #[Groups(['getLate'])]
  45.     private ?string $nameEn null;
  46.     #[ORM\Column(length255)]
  47.     #[Groups(['getLate'])]
  48.     private ?string $evaluationName null;
  49.     #[ORM\Column(length255nullabletrue)]
  50.     #[Groups(['getLate'])]
  51.     private ?string $evaluationNameEn null;
  52.     #[ORM\Column(type'date'nullabletrue)]
  53.     private ?\DateTimeInterface $startAt null;
  54.     #[ORM\Column(type'date'nullabletrue)]
  55.     private ?\DateTimeInterface $endAt null;
  56.     #[ORM\ManyToOne]
  57.     private ?PrimaryEvaluationReference $sourceEvaluation null;
  58.     #[ORM\ManyToOne]
  59.     #[ORM\JoinColumn(nullablefalse)]
  60.     private ?School $school null;
  61.     #[ORM\ManyToOne]
  62.     #[ORM\JoinColumn(nullablefalse)]
  63.     private ?SchoolYear $year null;
  64.     #[ORM\ManyToOne]
  65.     #[ORM\JoinColumn(nullablefalse)]
  66.     private ?User $author null;
  67.     #[ORM\ManyToOne]
  68.     private ?User $editor null;
  69.     public function __toString(): string
  70.     {
  71.         return $this->name ?? '';
  72.     }
  73.     public function getId(): ?int
  74.     {
  75.         return $this->id;
  76.     }
  77.     public function getQuarter(): ?Quarter
  78.     {
  79.         return $this->quarter;
  80.     }
  81.     public function setQuarter(?Quarter $quarter): static
  82.     {
  83.         $this->quarter $quarter;
  84.         return $this;
  85.     }
  86.     public function getPosition(): ?int
  87.     {
  88.         return $this->position;
  89.     }
  90.     public function setPosition(int $position): static
  91.     {
  92.         $this->position $position;
  93.         return $this;
  94.     }
  95.     public function getSlug(): ?string
  96.     {
  97.         return $this->slug;
  98.     }
  99.     public function setSlug(?string $slug): static
  100.     {
  101.         $this->slug $slug;
  102.         return $this;
  103.     }
  104.     public function getName(): ?string
  105.     {
  106.         return $this->name;
  107.     }
  108.     public function setName(string $name): static
  109.     {
  110.         $this->name $name;
  111.         return $this;
  112.     }
  113.     public function getNameEn(): ?string
  114.     {
  115.         return $this->nameEn;
  116.     }
  117.     public function setNameEn(?string $nameEn): static
  118.     {
  119.         $this->nameEn $nameEn;
  120.         return $this;
  121.     }
  122.     public function getEvaluationName(): ?string
  123.     {
  124.         return $this->evaluationName;
  125.     }
  126.     public function setEvaluationName(string $evaluationName): static
  127.     {
  128.         $this->evaluationName $evaluationName;
  129.         return $this;
  130.     }
  131.     public function getEvaluationNameEn(): ?string
  132.     {
  133.         return $this->evaluationNameEn;
  134.     }
  135.     public function setEvaluationNameEn(?string $evaluationNameEn): static
  136.     {
  137.         $this->evaluationNameEn $evaluationNameEn;
  138.         return $this;
  139.     }
  140.     public function getStartAt(): ?\DateTimeInterface
  141.     {
  142.         return $this->startAt;
  143.     }
  144.     public function setStartAt(?\DateTimeInterface $startAt): static
  145.     {
  146.         $this->startAt $startAt;
  147.         return $this;
  148.     }
  149.     public function getEndAt(): ?\DateTimeInterface
  150.     {
  151.         return $this->endAt;
  152.     }
  153.     public function setEndAt(?\DateTimeInterface $endAt): static
  154.     {
  155.         $this->endAt $endAt;
  156.         return $this;
  157.     }
  158.     public function getSourceEvaluation(): ?PrimaryEvaluationReference
  159.     {
  160.         return $this->sourceEvaluation;
  161.     }
  162.     public function setSourceEvaluation(?PrimaryEvaluationReference $sourceEvaluation): static
  163.     {
  164.         $this->sourceEvaluation $sourceEvaluation;
  165.         return $this;
  166.     }
  167.     public function getSchool(): ?School
  168.     {
  169.         return $this->school;
  170.     }
  171.     public function setSchool(?School $school): static
  172.     {
  173.         $this->school $school;
  174.         return $this;
  175.     }
  176.     public function getYear(): ?SchoolYear
  177.     {
  178.         return $this->year;
  179.     }
  180.     public function setYear(?SchoolYear $year): static
  181.     {
  182.         $this->year $year;
  183.         return $this;
  184.     }
  185.     public function getAuthor(): ?User
  186.     {
  187.         return $this->author;
  188.     }
  189.     public function setAuthor(?User $author): static
  190.     {
  191.         $this->author $author;
  192.         return $this;
  193.     }
  194.     public function getEditor(): ?User
  195.     {
  196.         return $this->editor;
  197.     }
  198.     public function setEditor(?User $editor): static
  199.     {
  200.         $this->editor $editor;
  201.         return $this;
  202.     }
  203. }