ConfirmableTrait   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 9
dl 0
loc 29
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A isConfirmed() 0 3 1
A setConfirmedAt() 0 3 1
A getConfirmedAt() 0 3 1
A setConfirmed() 0 6 2
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * (c) Christian Gripp <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Core23\Doctrine\Model\Traits;
13
14
use DateTime;
15
16
trait ConfirmableTrait
17
{
18
    /**
19
     * @var DateTime|null
20
     */
21
    protected $confirmedAt;
22
23
    public function getConfirmedAt(): ?DateTime
24
    {
25
        return $this->confirmedAt;
26
    }
27
28
    public function setConfirmedAt(?DateTime $confirmedAt): void
29
    {
30
        $this->confirmedAt = $confirmedAt;
31
    }
32
33
    public function setConfirmed(bool $confirmed): void
34
    {
35
        if ($confirmed) {
36
            $this->setConfirmedAt(new DateTime());
37
        } else {
38
            $this->setConfirmedAt(null);
39
        }
40
    }
41
42
    public function isConfirmed(): bool
43
    {
44
        return null !== $this->confirmedAt;
45
    }
46
}
47