CourseSearch   A
last analyzed

Complexity

Total Complexity 16

Size/Duplication

Total Lines 203
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 16
lcom 2
cbo 0
dl 0
loc 203
ccs 39
cts 39
cp 1
rs 10
c 0
b 0
f 0

16 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A create() 0 4 1
A getPage() 0 4 1
A setPage() 0 6 1
A getPerPage() 0 4 1
A setPerPage() 0 6 1
A getSort() 0 4 1
A setSort() 0 6 1
A getOrder() 0 4 1
A setOrder() 0 6 1
A getPages() 0 4 1
A setPages() 0 6 1
A getCount() 0 4 1
A setCount() 0 6 1
A getCourses() 0 4 1
A setCourses() 0 6 1
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_NAME = 'name';
27
28
    const SORT = [
29
        self::SORT_NAME,
30
    ];
31
32
    /**
33
     * @var string
34
     */
35
    private $order = self::ORDER_ASC;
36
37
    const ORDER_ASC = 'asc';
38
    const ORDER_DESC = 'desc';
39
40
    const ORDER = [
41
        self::ORDER_ASC,
42
        self::ORDER_DESC,
43
    ];
44
45
    /**
46
     * @var int
47
     */
48
    private $pages;
49
50
    /**
51
     * @var int
52
     */
53
    private $count;
54
55
    /**
56
     * @var Course[]
57
     */
58
    private $courses;
59
60 3
    private function __construct()
61
    {
62 3
    }
63
64
    /**
65
     * @return CourseSearch
66
     */
67 3
    public static function create(): self
68
    {
69 3
        return new self();
70
    }
71
72
    /**
73
     * @return int
74
     */
75 2
    public function getPage(): int
76
    {
77 2
        return (int) $this->page;
78
    }
79
80
    /**
81
     * @param int $page
82
     *
83
     * @return self
84
     */
85 2
    public function setPage(int $page): self
86
    {
87 2
        $this->page = $page;
88
89 2
        return $this;
90
    }
91
92
    /**
93
     * @return int
94
     */
95 2
    public function getPerPage(): int
96
    {
97 2
        return (int) $this->perPage;
98
    }
99
100
    /**
101
     * @param int $perPage
102
     *
103
     * @return self
104
     */
105 1
    public function setPerPage(int $perPage): self
106
    {
107 1
        $this->perPage = $perPage;
108
109 1
        return $this;
110
    }
111
112
    /**
113
     * @return null|string
114
     */
115 2
    public function getSort()
116
    {
117 2
        return $this->sort;
118
    }
119
120
    /**
121
     * @param null|string $sort
122
     *
123
     * @return self
124
     */
125 1
    public function setSort(string $sort = null): self
126
    {
127 1
        $this->sort = $sort;
128
129 1
        return $this;
130
    }
131
132
    /**
133
     * @return string
134
     */
135 2
    public function getOrder()
136
    {
137 2
        return $this->order;
138
    }
139
140
    /**
141
     * @param string $order
142
     *
143
     * @return self
144
     */
145 1
    public function setOrder(string $order): self
146
    {
147 1
        $this->order = $order;
148
149 1
        return $this;
150
    }
151
152
    /**
153
     * @return int
154
     */
155 1
    public function getPages(): int
156
    {
157 1
        return $this->pages;
158
    }
159
160
    /**
161
     * @param int $pages
162
     *
163
     * @return self
164
     */
165 1
    public function setPages(int $pages): self
166
    {
167 1
        $this->pages = $pages;
168
169 1
        return $this;
170
    }
171
172
    /**
173
     * @return int
174
     */
175 1
    public function getCount(): int
176
    {
177 1
        return $this->count;
178
    }
179
180
    /**
181
     * @param int $count
182
     *
183
     * @return self
184
     */
185 1
    public function setCount(int $count): self
186
    {
187 1
        $this->count = $count;
188
189 1
        return $this;
190
    }
191
192
    /**
193
     * @return Course[]
194
     */
195 1
    public function getCourses(): array
196
    {
197 1
        return $this->courses;
198
    }
199
200
    /**
201
     * @param Course[] $courses
202
     *
203
     * @return self
204
     */
205 1
    public function setCourses(array $courses): self
206
    {
207 1
        $this->courses = $courses;
208
209 1
        return $this;
210
    }
211
}
212