Passed
Push — feature/VSVGVQ-20 ( 985c44...f6eeee )
by steven
02:52
created

TranslatedAliasEntity::toTranslatedAlias()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 4
nc 1
nop 0
1
<?php declare(strict_types=1);
2
3
namespace VSV\GVQ_API\Company\Repositories\Entities;
4
5
use Doctrine\ORM\Mapping as ORM;
6
use Ramsey\Uuid\Uuid;
7
use VSV\GVQ_API\Common\Repositories\Entities\Entity;
8
use VSV\GVQ_API\Common\ValueObjects\Language;
9
use VSV\GVQ_API\Company\Models\TranslatedAlias;
10
use VSV\GVQ_API\Company\ValueObjects\Alias;
11
12
/**
13
 * @ORM\Entity()
14
 * @ORM\Table(name="translatedAlias")
15
 */
16
class TranslatedAliasEntity extends Entity
17
{
18
    /**
19
     * @var string
20
     * @ORM\Column(type="string", length=255, unique=true, nullable=false)
21
     */
22
    private $alias;
23
24
    /**
25
     * @var string
26
     * @ORM\Column(type="string", length=2, nullable=false)
27
     */
28
    private $language;
29
30
    /**
31
     * @param string $id
32
     * @param string $language
33
     * @param string $alias
34
     */
35
    public function __construct(
36
        string $id,
37
        string $language,
38
        string $alias
39
    ) {
40
        parent::__construct($id);
41
42
        $this->language = $language;
43
        $this->alias = $alias;
44
    }
45
46
    /**
47
     * @param TranslatedAlias $translatedAlias
48
     * @return TranslatedAliasEntity
49
     */
50
    public static function fromTranslatedAlias(TranslatedAlias $translatedAlias): TranslatedAliasEntity
51
    {
52
        return new TranslatedAliasEntity(
53
            $translatedAlias->getId()->toString(),
54
            $translatedAlias->getLanguage()->toNative(),
55
            $translatedAlias->getAlias()->toNative()
56
        );
57
    }
58
59
    /**
60
     * @return TranslatedAlias
61
     */
62
    public function toTranslatedAlias(): TranslatedAlias
63
    {
64
        return new TranslatedAlias(
65
            Uuid::fromString($this->getId()),
66
            new Language($this->getLanguage()),
67
            new Alias($this->getAlias())
68
        );
69
    }
70
71
    /**
72
     * @return string
73
     */
74
    public function getAlias(): string
75
    {
76
        return $this->alias;
77
    }
78
79
    /**
80
     * @return string
81
     */
82
    public function getLanguage(): string
83
    {
84
        return $this->language;
85
    }
86
}
87