1 | <?php |
||
16 | class TimeTableChecker |
||
17 | { |
||
18 | /** |
||
19 | * @var TimeTable |
||
20 | */ |
||
21 | private $timeTable; |
||
22 | |||
23 | /** |
||
24 | * @var OverrideInterface[] |
||
25 | */ |
||
26 | private $overrides = []; |
||
27 | |||
28 | /** |
||
29 | * TimeTableChecker constructor. |
||
30 | * |
||
31 | * @param TimeTable $timeTable |
||
32 | * @param Override\OverrideInterface[] $overrides |
||
33 | */ |
||
34 | 60 | public function __construct(TimeTable $timeTable, array $overrides = []) |
|
39 | |||
40 | /** |
||
41 | * @return TimeTable |
||
42 | */ |
||
43 | 22 | public function getTimeTable(): TimeTable |
|
47 | |||
48 | /** |
||
49 | * @param TimeTable $timeTable |
||
50 | * |
||
51 | * @return TimeTableChecker |
||
52 | */ |
||
53 | 2 | public function setTimeTable(TimeTable $timeTable): TimeTableChecker |
|
59 | |||
60 | /** |
||
61 | * @return Override\OverrideInterface[] |
||
62 | */ |
||
63 | 2 | public function getOverrides(): array |
|
67 | |||
68 | /** |
||
69 | * @param Override\OverrideInterface[] $overrides |
||
70 | * |
||
71 | * @return TimeTableChecker |
||
72 | */ |
||
73 | 2 | public function setOverrides(array $overrides): TimeTableChecker |
|
79 | |||
80 | /** |
||
81 | * @param OverrideInterface $override |
||
82 | */ |
||
83 | 38 | public function addOverride(OverrideInterface $override) |
|
87 | |||
88 | /** |
||
89 | * Checks if certain day has time periods. |
||
90 | * |
||
91 | * @param int $dayId |
||
92 | * |
||
93 | * @return TimePeriod[] |
||
94 | */ |
||
95 | 26 | public function getTimePeriodsForDay(int $dayId) |
|
105 | |||
106 | /** |
||
107 | * Check if a date's time is within the day's time period. |
||
108 | * @param \DateTime $dateTime |
||
109 | * |
||
110 | * @return bool |
||
111 | */ |
||
112 | 20 | public function isDateTimeWithinDayTimePeriods(\DateTime $dateTime) |
|
124 | |||
125 | /** |
||
126 | * Check if the time of the given DateTime is within TimePeriod's from and until time. |
||
127 | * |
||
128 | * @param \DateTime $dateTime |
||
129 | * @param TimePeriod $timePeriod |
||
130 | * |
||
131 | * @return bool |
||
132 | */ |
||
133 | 18 | public function isDateTimeBetweenTimePeriod(\DateTime $dateTime, TimePeriod $timePeriod) : bool |
|
138 | |||
139 | /** |
||
140 | * Creates a DateTime object based on given DateTime's date and given hour. |
||
141 | * |
||
142 | * @param \DateTime $dateTime |
||
143 | * @param string $time |
||
144 | * |
||
145 | * @return \DateTime |
||
146 | */ |
||
147 | 20 | public function createDateTimeForHour(\DateTime $dateTime, string $time) : \DateTime |
|
161 | |||
162 | /** |
||
163 | * Checks if datetime is overridden. |
||
164 | * |
||
165 | * @param \DateTime $dateTime |
||
166 | * @param string $type |
||
167 | * |
||
168 | * @return bool |
||
169 | */ |
||
170 | 48 | public function isOverridden(\DateTime $dateTime, string $type) |
|
184 | } |
||
185 |