aboutsummaryrefslogtreecommitdiff
path: root/src/Model/Entity/EmailForm.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Model/Entity/EmailForm.php')
-rw-r--r--src/Model/Entity/EmailForm.php57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/Model/Entity/EmailForm.php b/src/Model/Entity/EmailForm.php
new file mode 100644
index 0000000..5c54b86
--- /dev/null
+++ b/src/Model/Entity/EmailForm.php
@@ -0,0 +1,57 @@
1<?php
2// src/Model/Entity/EmailForm.php
3
4declare(strict_types=1);
5
6namespace App\Entity;
7
8use Doctrine\ORM\Mapping as ORM;
9
10#[ORM\Entity]
11#[ORM\Table(name: TABLE_PREFIX . "email_form")]
12class EmailForm{
13 #[ORM\Id]
14 #[ORM\GeneratedValue]
15 #[ORM\Column(type: "integer")]
16 private int $id_email_form;
17
18 // inverseBy fait le lien avec $email_form dans Node (qui a "mappedBy")
19 #[ORM\OneToOne(targetEntity: Node::class, inversedBy: "email_form")]
20 #[ORM\JoinColumn(name: "node_id", referencedColumnName: "id_node")]
21 private ?Node $node;
22
23 #[ORM\Column(type: "json")]
24 private array $data;
25
26 public function __construct(array $data, Node $node){
27 $this->data = $data;
28 $this->node = $node;
29 }
30
31 public function getId(): int
32 {
33 return $this->id_email_form;
34 }
35
36 // getData et updateData sont indentiques au code dans NodeData
37 // plutôt qu'une interface, pourquoi pas une classe abstraite? ou peut-être un trait?
38 public function getData(): array
39 {
40 return $this->data;
41 }
42 public function updateData(string $key, string|int|bool|array $value = ''): void
43 {
44 if($value !== ''){
45 $this->data[$key] = $value;
46 }
47 // si $value est vide, supprime la clé
48 elseif(isset($this->data[$key])){
49 unset($this->data[$key]);
50 }
51 }
52
53 public function setNode(?Node $node): void
54 {
55 $this->node = $node;
56 }
57} \ No newline at end of file