<?phpnamespace App\Entity;use App\Entity\Traits\Timestampable;use App\Repository\SubjectComponentReferenceRepository;use Doctrine\ORM\Mapping as ORM;/** * Sous-matière du programme national (créée par le super-admin), rattachée à * un SubjectReference — écoles primaires/maternelles uniquement (Oral, Écrit, * Pratique, Attitude...), chacune avec son propre barème. Copiée vers * SubjectComponent (locale, par école) à la création d'un Subject issu de ce * SubjectReference, pour les écoles primaires/maternelles — voir * SubjectComponentCopier, calqué sur CompetenceCopier. */#[ORM\HasLifecycleCallbacks]#[ORM\Entity(repositoryClass: SubjectComponentReferenceRepository::class)]class SubjectComponentReference{ use Timestampable; #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\ManyToOne(inversedBy: 'subjectComponentReferences')] #[ORM\JoinColumn(nullable: false)] private ?SubjectReference $subjectReference = null; #[ORM\Column(length: 255)] private ?string $name = null; #[ORM\Column(length: 255, nullable: true)] private ?string $nameEn = null; #[ORM\Column] private ?float $maxMark = null; /** * Ordre d'affichage parmi les sous-matières de la même matière. */ #[ORM\Column] private ?int $position = null; #[ORM\ManyToOne] private ?User $author = null; public function __toString(): string { return $this->name ?? ''; } public function getId(): ?int { return $this->id; } public function getSubjectReference(): ?SubjectReference { return $this->subjectReference; } public function setSubjectReference(?SubjectReference $subjectReference): static { $this->subjectReference = $subjectReference; 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 getMaxMark(): ?float { return $this->maxMark; } public function setMaxMark(float $maxMark): static { $this->maxMark = $maxMark; return $this; } public function getPosition(): ?int { return $this->position; } public function setPosition(int $position): static { $this->position = $position; return $this; } public function getAuthor(): ?User { return $this->author; } public function setAuthor(?User $author): static { $this->author = $author; return $this; }}