Test Failed
Push — master ( f562c0...ed7d3a )
by Dominik
02:11
created

CourseSearch::setOrder()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Chubbyphp\ApiSkeleton\Search;
6
7
use Chubbyphp\ApiSkeleton\Model\Course;
8
9
final class CourseSearch
10
{
11
    /**
12
     * @var int
13
     */
14
    private $page = 1;
15
16
    /**
17
     * @var int
18
     */
19
    private $perPage = 20;
20
21
    /**
22
     * @var string|null
23
     */
24
    private $sort;
25
26
    const SORT = [];
27
28
    /**
29
     * @var string
30
     */
31
    private $order = self::ORDER_ASC;
32
33
    const ORDER_ASC = 'asc';
34
    const ORDER_DESC = 'desc';
35
36
    const ORDER = [
37
        self::ORDER_ASC,
38
        self::ORDER_DESC,
39
    ];
40
41
    /**
42
     * @var int
43
     */
44
    private $pages;
45
46
    /**
47
     * @var int
48
     */
49
    private $count;
50
51
    /**
52
     * @var Course[]
53
     */
54
    private $courses;
55
56
    private function __construct()
57
    {
58
    }
59
60
    /**
61
     * @return CourseSearch
62
     */
63
    public static function create(): self
64
    {
65
        return new self();
66
    }
67
68
    /**
69
     * @return int|null
70
     */
71
    public function getPage()
72
    {
73
        return $this->page;
74
    }
75
76
    /**
77
     * @param int $page
78
     *
79
     * @return self
80
     */
81
    public function setPage(int $page): self
82
    {
83
        $this->page = $page;
84
85
        return $this;
86
    }
87
88
    /**
89
     * @return int
90
     */
91
    public function getPerPage()
92
    {
93
        return $this->perPage;
94
    }
95
96
    /**
97
     * @param int $perPage
98
     *
99
     * @return self
100
     */
101
    public function setPerPage(int $perPage): self
102
    {
103
        $this->perPage = $perPage;
104
105
        return $this;
106
    }
107
108
    /**
109
     * @return null|string
110
     */
111
    public function getSort()
112
    {
113
        return $this->sort;
114
    }
115
116
    /**
117
     * @param null|string $sort
118
     *
119
     * @return self
120
     */
121
    public function setSort(string $sort = null): self
122
    {
123
        $this->sort = $sort;
124
125
        return $this;
126
    }
127
128
    /**
129
     * @return null|string
130
     */
131
    public function getOrder()
132
    {
133
        return $this->order;
134
    }
135
136
    /**
137
     * @param null|string $order
138
     *
139
     * @return self
140
     */
141
    public function setOrder(string $order = null): self
142
    {
143
        $this->order = $order;
144
145
        return $this;
146
    }
147
148
    /**
149
     * @return int
150
     */
151
    public function getPages(): int
152
    {
153
        return $this->pages;
154
    }
155
156
    /**
157
     * @param int $pages
158
     */
159
    public function setPages(int $pages)
160
    {
161
        $this->pages = $pages;
162
    }
163
164
    /**
165
     * @return int
166
     */
167
    public function getCount(): int
168
    {
169
        return $this->count;
170
    }
171
172
    /**
173
     * @param int $count
174
     */
175
    public function setCount(int $count)
176
    {
177
        $this->count = $count;
178
    }
179
180
    /**
181
     * @return Course[]
182
     */
183
    public function getCourses(): array
184
    {
185
        return $this->courses;
186
    }
187
188
    /**
189
     * @param Course[] $courses
190
     */
191
    public function setCourses(array $courses)
192
    {
193
        $this->courses = $courses;
194
    }
195
}
196