<?php
namespace App\Entity;
use App\Repository\QuizReponseDetailRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: QuizReponseDetailRepository::class)]
class QuizReponseDetail
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\ManyToOne(inversedBy: 'details')]
#[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
private ?QuizReponse $reponse = null;
#[ORM\ManyToOne(inversedBy: 'details')]
#[ORM\JoinColumn(nullable: false)]
private ?QuizQuestion $question = null;
// Pour QCU/QCM : options choisies (JSON array d'IDs)
#[ORM\Column(type: Types::JSON, nullable: true)]
private ?array $optionsChoisies = [];
// Pour question texte libre
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $reponseTexte = null;
// Points obtenus pour cette question
#[ORM\Column(nullable: true)]
private ?float $pointsObtenus = null;
// Correcte ou non
#[ORM\Column(nullable: true)]
private ?bool $isCorrect = null;
public function getId(): ?int
{
return $this->id;
}
public function getReponse(): ?QuizReponse
{
return $this->reponse;
}
public function setReponse(?QuizReponse $reponse): self
{
$this->reponse = $reponse;
return $this;
}
public function getQuestion(): ?QuizQuestion
{
return $this->question;
}
public function setQuestion(?QuizQuestion $question): self
{
$this->question = $question;
return $this;
}
public function getOptionsChoisies(): ?array { return $this->optionsChoisies; }
public function setOptionsChoisies(?array $o): self { $this->optionsChoisies = $o; return $this; }
public function getReponseTexte(): ?string { return $this->reponseTexte; }
public function setReponseTexte(?string $t): self { $this->reponseTexte = $t; return $this; }
public function getPointsObtenus(): ?float { return $this->pointsObtenus; }
public function setPointsObtenus(?float $p): self { $this->pointsObtenus = $p; return $this; }
public function isCorrect(): ?bool { return $this->isCorrect; }
public function setIsCorrect(?bool $c): self { $this->isCorrect = $c; return $this; }
}