Failed Conditions
Pull Request — master (#234)
by
unknown
02:35
created

UpdateCustomer   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 123
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
wmc 8
lcom 0
cbo 0
dl 0
loc 123
rs 10
c 0
b 0
f 0

8 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 18 1
A firstName() 0 4 1
A lastName() 0 4 1
A email() 0 4 1
A birthday() 0 4 1
A gender() 0 4 1
A phoneNumber() 0 4 1
A subscribedToNewsletter() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Sylius\ShopApiPlugin\Command;
6
7
use DateTime;
8
use DateTimeInterface;
9
use Webmozart\Assert\Assert;
10
11
final class UpdateCustomer
12
{
13
    /**
14
     * @var string
15
     */
16
    private $firstName;
17
18
    /**
19
     * @var string
20
     */
21
    private $lastName;
22
23
    /**
24
     * @var string|null
25
     */
26
    private $email;
27
28
    /**
29
     * @var DateTimeInterface|null
30
     */
31
    private $birthday;
32
33
    /**
34
     * @var string
35
     */
36
    private $gender;
37
38
    /**
39
     * @var string|null
40
     */
41
    private $phoneNumber;
42
43
    /**
44
     * @var bool
45
     */
46
    private $subscribedToNewsletter;
47
48
    /**
49
     * UpdateCustomer constructor.
50
     *
51
     * @param $firstName
52
     * @param $lastName
53
     * @param $email
54
     * @param $birthday
55
     * @param $gender
56
     * @param $phoneNumber
57
     * @param $subscribedToNewsletter
58
     */
59
    public function __construct($firstName, $lastName, $email, $birthday, $gender, $phoneNumber, $subscribedToNewsletter = false)
60
    {
61
        Assert::string($firstName);
62
        Assert::string($lastName);
63
        Assert::string($email);
64
        Assert::nullOrString($birthday);
65
        Assert::string($gender);
66
        Assert::nullOrString($phoneNumber);
67
        Assert::nullOrBoolean($subscribedToNewsletter);
68
69
        $this->firstName = $firstName;
70
        $this->lastName = $lastName;
71
        $this->email = $email;
72
        $this->birthday = new DateTime($birthday);
73
        $this->gender = $gender;
74
        $this->phoneNumber = $phoneNumber;
75
        $this->subscribedToNewsletter = $subscribedToNewsletter;
76
    }
77
78
    /**
79
     * @return string
80
     */
81
    public function firstName(): string
82
    {
83
        return $this->firstName;
84
    }
85
86
    /**
87
     * @return string
88
     */
89
    public function lastName(): string
90
    {
91
        return $this->lastName;
92
    }
93
94
    /**
95
     * @return string
96
     */
97
    public function email(): string
98
    {
99
        return $this->email;
100
    }
101
102
    /**
103
     * @return DateTimeInterface|null
104
     */
105
    public function birthday(): ?DateTimeInterface
106
    {
107
        return $this->birthday;
108
    }
109
110
    /**
111
     * @return string|null
112
     */
113
    public function gender(): ?string
114
    {
115
        return $this->gender;
116
    }
117
118
    /**
119
     * @return string|null
120
     */
121
    public function phoneNumber(): ?string
122
    {
123
        return $this->phoneNumber;
124
    }
125
126
    /**
127
     * @return bool
128
     */
129
    public function subscribedToNewsletter(): bool
130
    {
131
        return $this->subscribedToNewsletter;
132
    }
133
}
134