<?phpnamespace App\Entity;use App\Repository\QuizAssignmentRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: QuizAssignmentRepository::class)]class QuizAssignment{ #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\ManyToOne(inversedBy: 'assignments')] #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')] private ?Quiz $quiz = null; #[ORM\ManyToOne(inversedBy: 'assignments')] private ?Evenement $session = null; #[ORM\ManyToOne(inversedBy: 'assignments')] private ?VirtualClassroom $classeVirtuelle = null; #[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)] private ?\DateTimeInterface $dateDebut = null; // Date de fermeture #[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)] private ?\DateTimeInterface $dateFin = null; #[ORM\Column(type: Types::DATETIME_MUTABLE)] private ?\DateTimeInterface $createdAt = null; #[ORM\OneToMany(mappedBy: 'assignment', targetEntity: QuizReponse::class)] private Collection $reponses; public function __construct() { $this->reponses = new ArrayCollection(); } public function getId(): ?int { return $this->id; } public function getQuiz(): ?Quiz { return $this->quiz; } public function setQuiz(?Quiz $quiz): self { $this->quiz = $quiz; return $this; } public function getSession(): ?Evenement { return $this->session; } public function setSession(?Evenement $session): self { $this->session = $session; return $this; } public function getClasseVirtuelle(): ?VirtualClassroom { return $this->classeVirtuelle; } public function setClasseVirtuelle(?VirtualClassroom $classeVirtuelle): self { $this->classeVirtuelle = $classeVirtuelle; return $this; } public function getDateDebut(): ?\DateTimeInterface { return $this->dateDebut; } public function setDateDebut(?\DateTimeInterface $d): self { $this->dateDebut = $d; return $this; } public function getDateFin(): ?\DateTimeInterface { return $this->dateFin; } public function setDateFin(?\DateTimeInterface $d): self { $this->dateFin = $d; return $this; } public function getCreatedAt(): ?\DateTimeInterface { return $this->createdAt; } public function setCreatedAt(?\DateTimeInterface $d): self { $this->createdAt = $d; return $this; } // Label pour l'affichage public function getLabel(): string { if ($this->session) return 'Session: '.$this->session->getTitre(); if ($this->classeVirtuelle) return 'Classe: '.$this->classeVirtuelle->getTitre(); return 'Non affecté'; } /** * @return Collection<int, QuizReponse> */ public function getReponses(): Collection { return $this->reponses; } public function addReponse(QuizReponse $reponse): self { if (!$this->reponses->contains($reponse)) { $this->reponses->add($reponse); $reponse->setAssignment($this); } return $this; } public function removeReponse(QuizReponse $reponse): self { if ($this->reponses->removeElement($reponse)) { // set the owning side to null (unless already changed) if ($reponse->getAssignment() === $this) { $reponse->setAssignment(null); } } return $this; }}