Passed
Push — main ( 098d60...1e91ce )
by Aleksandr
09:01
created

IntervalsRequest   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 92
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 17
dl 0
loc 92
ccs 16
cts 16
cp 1
rs 10
c 1
b 0
f 0
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A getService() 0 3 1
A getFias() 0 3 1
A getZone() 0 3 1
A getTown() 0 3 1
A getDate() 0 3 1
A __construct() 0 7 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DalliSDK\Requests;
6
7
use DalliSDK\Responses\IntervalsResponse;
8
use JMS\Serializer\Annotation as JMS;
9
10
/**
11
 * Запрос интервалов доставки
12
 *
13
 * @see https://api.dalli-service.com/v1/doc/intervals
14
 * @JMS\XmlRoot("intervals")
15
 */
16
class IntervalsRequest extends AbstractRequest implements RequestInterface
17
{
18
    public const RESPONSE_CLASS = IntervalsResponse::class;
19
20
    /**
21
     * Зона, интервалы которой, вы хотите получить
22
     *
23
     * @JMS\Type("int")
24
     * @JMS\SerializedName("zone")
25
     */
26
    private ?int $zone;
27
28
    /**
29
     * Название города, интервалы которого, вы хотите получить. Работает только для региональной доставки (service 22)
30
     *
31
     * @JMS\Type("string")
32
     * @JMS\SerializedName("town")
33
     */
34
    private ?string $town;
35
36
    /**
37
     * ФИАС города, в котором доступен интервал. Работает только для региональной доставки (service 22)
38
     *
39
     * @JMS\Type("string")
40
     */
41
    private ?string $fias = null;
42
43
    /**
44
     * Тип доставки, интервалы которого, вы хотите получить. (по умолчанию - внутригородская доставка)
45
     *
46
     * @JMS\Type("int")
47
     * @JMS\SerializedName("service")
48
     */
49
    private ?int $service;
50
51
    /**
52
     * Дата доставки заказа в формате yyyy-mm-dd. Используется при смене интервалов,
53
     * чтобы отображать актуальные интервалы для выбранной даты доставки.
54
     * (по умолчанию - сегодня для экспресс, завтра для остальных)
55
     *
56
     * @JMS\Type("DateTime<'Y-m-d'>")
57
     * @JMS\SerializedName("date")
58
     */
59
    private ?\DateTimeInterface $date;
60
61 2
    public function __construct(?int $zone = null, ?int $service = null, ?string $town = null, ?string $fias = null, ?\DateTimeInterface $date = null)
62
    {
63 2
        $this->service = $service;
64 2
        $this->zone = $zone;
65 2
        $this->town = $town;
66 2
        $this->fias = $fias;
67 2
        $this->date = $date;
68
    }
69
70
    /**
71
     * @return int|null
72
     */
73 2
    public function getZone(): ?int
74
    {
75 2
        return $this->zone;
76
    }
77
78
    /**
79
     * @return string|null
80
     */
81 2
    public function getTown(): ?string
82
    {
83 2
        return $this->town;
84
    }
85
86
    /**
87
     * @return string|null
88
     */
89 2
    public function getFias(): ?string
90
    {
91 2
        return $this->fias;
92
    }
93
94
    /**
95
     * @return int|null
96
     */
97 2
    public function getService(): ?int
98
    {
99 2
        return $this->service;
100
    }
101
102
    /**
103
     * @return \DateTimeInterface|null
104
     */
105 2
    public function getDate(): ?\DateTimeInterface
106
    {
107 2
        return $this->date;
108
    }
109
}
110