mirror of
https://github.com/MarijnDoeve/TijdVoorDeTest.git
synced 2026-03-07 13:14:20 +01:00
This commit removes nullable Uuid properties for consistency, transitions the Correction entity to QuizCandidate with associated migrations, refactors queries and repositories, adjusts related routes and controllers to use the new entity, updates front-end assets for elimination workflows, and standardizes route requirements and naming conventions.
80 lines
1.8 KiB
PHP
80 lines
1.8 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Entity;
|
|
|
|
use App\Repository\QuizCandidateRepository;
|
|
use Doctrine\DBAL\Types\Types;
|
|
use Doctrine\ORM\Mapping as ORM;
|
|
use Safe\DateTimeImmutable;
|
|
use Symfony\Bridge\Doctrine\IdGenerator\UuidGenerator;
|
|
use Symfony\Bridge\Doctrine\Types\UuidType;
|
|
use Symfony\Component\Uid\Uuid;
|
|
|
|
#[ORM\Entity(repositoryClass: QuizCandidateRepository::class)]
|
|
#[ORM\UniqueConstraint(columns: ['candidate_id', 'quiz_id'])]
|
|
#[ORM\HasLifecycleCallbacks]
|
|
class QuizCandidate
|
|
{
|
|
#[ORM\Id]
|
|
#[ORM\Column(type: UuidType::NAME, unique: true)]
|
|
#[ORM\GeneratedValue(strategy: 'CUSTOM')]
|
|
#[ORM\CustomIdGenerator(class: UuidGenerator::class)]
|
|
private Uuid $id;
|
|
|
|
#[ORM\Column]
|
|
private float $corrections = 0;
|
|
|
|
#[ORM\Column(type: Types::DATETIMETZ_IMMUTABLE)]
|
|
private \DateTimeImmutable $created;
|
|
|
|
public function __construct(
|
|
#[ORM\ManyToOne(inversedBy: 'candidateData')]
|
|
#[ORM\JoinColumn(nullable: false)]
|
|
private Quiz $quiz,
|
|
|
|
#[ORM\ManyToOne(inversedBy: 'quizData')]
|
|
#[ORM\JoinColumn(nullable: false)]
|
|
private Candidate $candidate,
|
|
) {}
|
|
|
|
public function getId(): Uuid
|
|
{
|
|
return $this->id;
|
|
}
|
|
|
|
public function getCandidate(): Candidate
|
|
{
|
|
return $this->candidate;
|
|
}
|
|
|
|
public function getQuiz(): Quiz
|
|
{
|
|
return $this->quiz;
|
|
}
|
|
|
|
public function getCorrections(): ?float
|
|
{
|
|
return $this->corrections;
|
|
}
|
|
|
|
public function setCorrections(float $corrections): static
|
|
{
|
|
$this->corrections = $corrections;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getCreated(): \DateTimeImmutable
|
|
{
|
|
return $this->created;
|
|
}
|
|
|
|
#[ORM\PrePersist]
|
|
public function setCreatedAtValue(): void
|
|
{
|
|
$this->created = new DateTimeImmutable();
|
|
}
|
|
}
|