Passed
Branch master (837a03)
by Tomáš
02:48
created

OrderedPackage   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 209
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 42
c 1
b 0
f 0
dl 0
loc 209
ccs 43
cts 43
cp 1
rs 10
wmc 12

12 Methods

Rating   Name   Duplication   Size   Complexity  
A getCarrierId() 0 3 1
A getFinalCarrierId() 0 3 1
A newInstanceFromData() 0 13 1
A __construct() 0 22 1
A getCarrierIdSwap() 0 3 1
A getBatchId() 0 3 1
A getPackageId() 0 3 1
A getTrackUrl() 0 3 1
A getLabelUrl() 0 3 1
A getPieces() 0 3 1
A getShipper() 0 3 1
A getFinalTrackUrl() 0 3 1
1
<?php
2
3
namespace Inspirum\Balikobot\Model\Values;
4
5
class OrderedPackage
6
{
7
    /**
8
     * Package ID
9
     *
10
     * @var string
11
     */
12
    private $packageId;
13
14
    /**
15
     * Package batch ID (EID)
16
     *
17
     * @var string
18
     */
19
    private $batchId;
20
21
    /**
22
     * Shipper
23
     *
24
     * @var string
25
     */
26
    private $shipper;
27
28
    /**
29
     * Carrier ID (for package tracking)
30
     *
31
     * @var string
32
     */
33
    private $carrierId;
34
35
    /**
36
     * Track URL
37
     *
38
     * @var string|null
39
     */
40
    private $trackUrl;
41
42
    /**
43
     * Label URL
44
     *
45
     * @var string|null
46
     */
47
    private $labelUrl;
48
49
    /**
50
     * Carrier ID Swap
51
     *
52
     * @var string|null
53
     */
54
    private $carrierIdSwap;
55
56
    /**
57
     * Pieces
58
     *
59
     * @var array<string>
60
     */
61
    private $pieces;
62
63
    /**
64
     * Final carrier ID
65
     *
66
     * @var string|null
67
     */
68
    private $finalCarrierId;
69
70
    /**
71
     * Final track URL
72
     *
73
     * @var string|null
74
     */
75
    private $finalTrackUrl;
76
77
    /**
78
     * OrderedPackage constructor
79
     *
80
     * @param string        $packageId
81
     * @param string        $shipper
82
     * @param string        $batchId
83
     * @param string        $carrierId
84
     * @param string|null   $trackUrl
85
     * @param string|null   $labelUrl
86
     * @param string|null   $carrierIdSwap
87
     * @param array<string> $pieces
88
     * @param string|null   $finalCarrierId
89
     * @param string|null   $finalTrackUrl
90
     */
91 54
    public function __construct(
92
        string $packageId,
93
        string $shipper,
94
        string $batchId,
95
        string $carrierId,
96
        string $trackUrl = null,
97
        string $labelUrl = null,
98
        string $carrierIdSwap = null,
99
        array $pieces = [],
100
        string $finalCarrierId = null,
101
        string $finalTrackUrl = null
102
    ) {
103 54
        $this->packageId      = $packageId;
104 54
        $this->shipper        = $shipper;
105 54
        $this->batchId        = $batchId;
106 54
        $this->carrierId      = $carrierId;
107 54
        $this->trackUrl       = $trackUrl;
108 54
        $this->labelUrl       = $labelUrl;
109 54
        $this->carrierIdSwap  = $carrierIdSwap;
110 54
        $this->pieces         = $pieces;
111 54
        $this->finalCarrierId = $finalCarrierId;
112 54
        $this->finalTrackUrl  = $finalTrackUrl;
113 54
    }
114
115
    /**
116
     * @return string
117
     */
118 27
    public function getPackageId(): string
119
    {
120 27
        return $this->packageId;
121
    }
122
123
    /**
124
     * @return string
125
     */
126 11
    public function getBatchId(): string
127
    {
128 11
        return $this->batchId;
129
    }
130
131
    /**
132
     * @return string
133
     */
134 29
    public function getCarrierId(): string
135
    {
136 29
        return $this->carrierId;
137
    }
138
139
    /**
140
     * @return string|null
141
     */
142 4
    public function getTrackUrl(): ?string
143
    {
144 4
        return $this->trackUrl;
145
    }
146
147
    /**
148
     * @return string|null
149
     */
150 4
    public function getLabelUrl(): ?string
151
    {
152 4
        return $this->labelUrl;
153
    }
154
155
    /**
156
     * @return string|null
157
     */
158 4
    public function getCarrierIdSwap(): ?string
159
    {
160 4
        return $this->carrierIdSwap;
161
    }
162
163
    /**
164
     * @return array<string>
165
     */
166 4
    public function getPieces(): array
167
    {
168 4
        return $this->pieces;
169
    }
170
171
    /**
172
     * @return string
173
     */
174 54
    public function getShipper(): string
175
    {
176 54
        return $this->shipper;
177
    }
178
179
    /**
180
     * @return string|null
181
     */
182 1
    public function getFinalCarrierId(): ?string
183
    {
184 1
        return $this->finalCarrierId;
185
    }
186
187
    /**
188
     * @return string|null
189
     */
190 1
    public function getFinalTrackUrl(): ?string
191
    {
192 1
        return $this->finalTrackUrl;
193
    }
194
195
    /**
196
     * @param string              $shipper
197
     * @param array<string,mixed> $data
198
     *
199
     * @return \Inspirum\Balikobot\Model\Values\OrderedPackage
200
     */
201 20
    public static function newInstanceFromData(string $shipper, array $data): self
202
    {
203 20
        return new self(
204 20
            $data['package_id'],
205
            $shipper,
206 20
            $data['eid'],
207 20
            $data['carrier_id'] ?? '',
208 20
            $data['track_url'] ?? null,
209 20
            $data['label_url'] ?? null,
210 20
            $data['carrier_id_swap'] ?? null,
211 20
            $data['pieces'] ?? [],
212 20
            $data['carrier_id_final'] ?? null,
213 20
            $data['track_url_final'] ?? null
214
        );
215
    }
216
}
217