src/Entity/TheClassEvaluationSystem.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\TheClassEvaluationSystemRepository;
  4. use Doctrine\ORM\Mapping as ORM;
  5. /**
  6.  * Système d'évaluation choisi pour UNE classe, POUR UNE année scolaire donnée.
  7.  *
  8.  * Une ligne par (theClass, year) : changer de système pour une classe (même à
  9.  * l'initiative du super-admin via ClassLevel::defaultEvaluationSystem) ne
  10.  * touche jamais aux lignes des années passées, donc les bulletins déjà
  11.  * générés restent cohérents avec le système qui était actif au moment de leur
  12.  * calcul. Pas de ligne pour une (classe, année) donnée = pas de choix explicite
  13.  * → voir TheClassEvaluationSystemRepository::resolve() pour la résolution du
  14.  * système applicable (retombe sur ClassLevel::defaultEvaluationSystem, puis
  15.  * sur 'sequence').
  16.  */
  17. #[ORM\Entity(repositoryClassTheClassEvaluationSystemRepository::class)]
  18. #[ORM\UniqueConstraint(name'the_class_year_unique'columns: ['the_class_id''year_id'])]
  19. class TheClassEvaluationSystem
  20. {
  21.     #[ORM\Id]
  22.     #[ORM\GeneratedValue]
  23.     #[ORM\Column]
  24.     private ?int $id null;
  25.     #[ORM\ManyToOne(targetEntityTheClass::class)]
  26.     #[ORM\JoinColumn(nullablefalse)]
  27.     private ?TheClass $theClass null;
  28.     #[ORM\ManyToOne(targetEntitySchoolYear::class)]
  29.     #[ORM\JoinColumn(nullablefalse)]
  30.     private ?SchoolYear $year null;
  31.     // Nom de colonne explicite : "system" est un mot réservé en MySQL 8+
  32.     // (utilisé nu par Doctrine sinon), ce qui provoque une erreur de syntaxe
  33.     // SQL à l'insertion. La propriété/les getters/setters PHP restent inchangés.
  34.     #[ORM\Column(name'evaluation_system'length20)]
  35.     private ?string $system null;
  36.     public function getId(): ?int
  37.     {
  38.         return $this->id;
  39.     }
  40.     public function getTheClass(): ?TheClass
  41.     {
  42.         return $this->theClass;
  43.     }
  44.     public function setTheClass(?TheClass $theClass): static
  45.     {
  46.         $this->theClass $theClass;
  47.         return $this;
  48.     }
  49.     public function getYear(): ?SchoolYear
  50.     {
  51.         return $this->year;
  52.     }
  53.     public function setYear(?SchoolYear $year): static
  54.     {
  55.         $this->year $year;
  56.         return $this;
  57.     }
  58.     public function getSystem(): ?string
  59.     {
  60.         return $this->system;
  61.     }
  62.     public function setSystem(string $system): static
  63.     {
  64.         $this->system $system;
  65.         return $this;
  66.     }
  67. }