Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
8.89% covered (danger)
8.89%
4 / 45
10.81% covered (danger)
10.81%
4 / 37
CRAP
0.00% covered (danger)
0.00%
0 / 1
NewsEntry
8.89% covered (danger)
8.89%
4 / 45
10.81% covered (danger)
10.81%
4 / 37
1376.17
0.00% covered (danger)
0.00%
0 / 1
 id
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 getId
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setId
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getPublishedDate
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setPublishedDate
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getPublishedTime
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setPublishedTime
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getFormat
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setFormat
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getAuthorName
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setAuthorName
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getAuthorEmail
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setAuthorEmail
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getAuthorUser
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setAuthorUser
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getAuthorRole
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setAuthorRole
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTitle
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setTitle
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTeaser
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setTeaser
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getContent
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setContent
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getImageIds
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
12
 setImageIds
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
6
 getTags
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setTags
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getExternalUrl
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setExternalUrl
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTermin
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setTermin
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getCounter
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setCounter
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getNewsletter
n/a
0 / 0
n/a
0 / 0
1
 setNewsletter
n/a
0 / 0
n/a
0 / 0
1
 __toString
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 testOnlyGetField
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getEntityNameForStorage
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getEntityIdForStorage
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Olz\Entity\News;
4
5use Doctrine\ORM\Mapping as ORM;
6use Olz\Entity\Common\DataStorageInterface;
7use Olz\Entity\Common\DataStorageTrait;
8use Olz\Entity\Common\OlzEntity;
9use Olz\Entity\Common\TestableInterface;
10use Olz\Entity\Roles\Role;
11use Olz\Entity\Users\User;
12use Olz\Repository\News\NewsRepository;
13
14#[ORM\Table(name: 'news')]
15#[ORM\Index(name: 'published_index', columns: ['published_date', 'published_time'])]
16#[ORM\Entity(repositoryClass: NewsRepository::class)]
17class NewsEntry extends OlzEntity implements DataStorageInterface, TestableInterface {
18    use DataStorageTrait;
19
20    #[ORM\Id]
21    #[ORM\Column(type: 'integer', nullable: false)]
22    #[ORM\GeneratedValue]
23    private int $id;
24
25    #[ORM\Column(type: 'integer', nullable: false)]
26    private int $termin;
27
28    #[ORM\Column(type: 'date', nullable: false)]
29    private \DateTime $published_date;
30
31    #[ORM\Column(type: 'time', nullable: true)]
32    private ?\DateTime $published_time;
33
34    #[ORM\Column(type: 'boolean', nullable: false, options: ['default' => 1])]
35    private bool $newsletter;
36
37    #[ORM\Column(type: 'text', nullable: false)]
38    private string $title;
39
40    #[ORM\Column(type: 'text', nullable: true)]
41    private ?string $teaser;
42
43    #[ORM\Column(type: 'text', nullable: true)]
44    private ?string $content;
45
46    #[ORM\Column(type: 'text', nullable: true)]
47    private ?string $image_ids;
48
49    #[ORM\Column(type: 'text', nullable: true)]
50    private ?string $external_url;
51
52    #[ORM\Column(type: 'string', nullable: true)]
53    private ?string $author_name;
54
55    #[ORM\Column(type: 'string', nullable: true)]
56    private ?string $author_email;
57
58    #[ORM\ManyToOne(targetEntity: User::class)]
59    #[ORM\JoinColumn(name: 'author_user_id', referencedColumnName: 'id', nullable: true)]
60    private ?User $author_user;
61
62    #[ORM\ManyToOne(targetEntity: Role::class)]
63    #[ORM\JoinColumn(name: 'author_role_id', referencedColumnName: 'id', nullable: true)]
64    private ?Role $author_role;
65
66    #[ORM\Column(type: 'text', nullable: false)]
67    private string $format;
68
69    #[ORM\Column(type: 'text', nullable: false, options: ['default' => ''])]
70    private string $tags;
71
72    #[ORM\Column(type: 'integer', nullable: false, options: ['default' => 0])]
73    private int $counter;
74    // PRIMARY KEY (`id`),
75    // KEY `datum` (`datum`)
76
77    public static function id(int $id): self {
78        $entity = new self();
79        $entity->setId($id);
80        return $entity;
81    }
82
83    public function getId(): ?int {
84        return $this->id ?? null;
85    }
86
87    public function setId(int $new_value): void {
88        $this->id = $new_value;
89    }
90
91    public function getPublishedDate(): \DateTime {
92        return $this->published_date;
93    }
94
95    public function setPublishedDate(\DateTime $new_value): void {
96        $this->published_date = $new_value;
97    }
98
99    public function getPublishedTime(): ?\DateTime {
100        return $this->published_time;
101    }
102
103    public function setPublishedTime(?\DateTime $new_value): void {
104        $this->published_time = $new_value;
105    }
106
107    public function getFormat(): string {
108        return $this->format;
109    }
110
111    public function setFormat(string $new_value): void {
112        $this->format = $new_value;
113    }
114
115    public function getAuthorName(): ?string {
116        return $this->author_name;
117    }
118
119    public function setAuthorName(?string $new_value): void {
120        $this->author_name = $new_value;
121    }
122
123    public function getAuthorEmail(): ?string {
124        return $this->author_email;
125    }
126
127    public function setAuthorEmail(?string $new_value): void {
128        $this->author_email = $new_value;
129    }
130
131    public function getAuthorUser(): ?User {
132        return $this->author_user;
133    }
134
135    public function setAuthorUser(?User $new_value): void {
136        $this->author_user = $new_value;
137    }
138
139    public function getAuthorRole(): ?Role {
140        return $this->author_role;
141    }
142
143    public function setAuthorRole(?Role $new_value): void {
144        $this->author_role = $new_value;
145    }
146
147    public function getTitle(): string {
148        return $this->title;
149    }
150
151    public function setTitle(string $new_value): void {
152        $this->title = $new_value;
153    }
154
155    public function getTeaser(): ?string {
156        return $this->teaser;
157    }
158
159    public function setTeaser(?string $new_value): void {
160        $this->teaser = $new_value;
161    }
162
163    public function getContent(): ?string {
164        return $this->content;
165    }
166
167    public function setContent(?string $new_value): void {
168        $this->content = $new_value;
169    }
170
171    /** @return array<string> */
172    public function getImageIds(): array {
173        if ($this->image_ids == null) {
174            return [];
175        }
176        $array = json_decode($this->image_ids, true);
177        return is_array($array) ? $array : [];
178    }
179
180    /** @param array<string> $new_value */
181    public function setImageIds(array $new_value): void {
182        $enc_value = json_encode($new_value);
183        if (!$enc_value) {
184            return;
185        }
186        $this->image_ids = $enc_value;
187    }
188
189    public function getTags(): string {
190        return $this->tags;
191    }
192
193    public function setTags(string $new_value): void {
194        $this->tags = $new_value;
195    }
196
197    public function getExternalUrl(): ?string {
198        return $this->external_url;
199    }
200
201    public function setExternalUrl(?string $new_value): void {
202        $this->external_url = $new_value;
203    }
204
205    public function getTermin(): int {
206        return $this->termin;
207    }
208
209    public function setTermin(int $new_value): void {
210        $this->termin = $new_value;
211    }
212
213    public function getCounter(): int {
214        return $this->counter;
215    }
216
217    public function setCounter(int $new_value): void {
218        $this->counter = $new_value;
219    }
220
221    /** @deprecated */
222    public function getNewsletter(): bool {
223        return $this->newsletter;
224    }
225
226    /** @deprecated */
227    public function setNewsletter(bool $new_value): void {
228        $this->newsletter = $new_value;
229    }
230
231    // ---
232
233    public function __toString(): string {
234        return "NewsEntry (ID: {$this->getId()})";
235    }
236
237    public function testOnlyGetField(string $field_name): mixed {
238        return $this->{$field_name};
239    }
240
241    public static function getEntityNameForStorage(): string {
242        return 'news';
243    }
244
245    public function getEntityIdForStorage(): string {
246        return "{$this->getId()}";
247    }
248}