*/ #[ORM\Column(type: Types::JSON)] private array $data = []; #[ORM\Column(type: Types::DATETIMETZ_IMMUTABLE, nullable: false)] private \DateTimeImmutable $created; public function __construct( #[ORM\ManyToOne(inversedBy: 'eliminations')] #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')] private Quiz $quiz, ) {} public function getId(): Uuid { return $this->id; } /** @return array */ public function getData(): array { return $this->data; } /** @param array $data */ public function setData(array $data): self { $this->data = $data; return $this; } public function getQuiz(): Quiz { return $this->quiz; } /** @param InputBag $inputBag */ public function updateFromInputBag(InputBag $inputBag): self { foreach (array_keys($this->data) as $name) { $newColour = $inputBag->get('colour-'.mb_strtolower($name)); if (\is_string($newColour)) { $this->data[$name] = $inputBag->get('colour-'.mb_strtolower($name)); } } return $this; } public function getScreenColour(?string $name): ?string { return $this->data[$name] ?? null; } #[ORM\PrePersist] public function setCreatedAtValue(): void { $this->created = new DateTimeImmutable(); } public function getCreated(): \DateTimeInterface { return $this->created; } }