summaryrefslogtreecommitdiff
path: root/includes/view/ShiftCalendarLane.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/view/ShiftCalendarLane.php')
-rw-r--r--includes/view/ShiftCalendarLane.php121
1 files changed, 71 insertions, 50 deletions
diff --git a/includes/view/ShiftCalendarLane.php b/includes/view/ShiftCalendarLane.php
index 33fccec3..774683bd 100644
--- a/includes/view/ShiftCalendarLane.php
+++ b/includes/view/ShiftCalendarLane.php
@@ -5,59 +5,80 @@ namespace Engelsystem;
/**
* Represents a single lane in a shifts calendar.
*/
-class ShiftCalendarLane {
-
- private $firstBlockStartTime;
-
- private $blockCount;
-
- private $header;
-
- private $shifts = [];
-
- public function __construct($header, $firstBlockStartTime, $blockCount) {
- $this->header = $header;
- $this->firstBlockStartTime = $firstBlockStartTime;
- $this->blockCount = $blockCount;
- }
-
- /**
- * Adds a shift to the lane, but only if it fits.
- * Returns true on success.
- *
- * @param Shift $shift
- * The shift to add
- * @return boolean true on success
- */
- public function addShift($shift) {
- if ($this->shiftFits($shift)) {
- $this->shifts[] = $shift;
- return true;
+class ShiftCalendarLane
+{
+ /** @var int */
+ private $firstBlockStartTime;
+
+ /** @var int */
+ private $blockCount;
+
+ /** @var string */
+ private $header;
+
+ /** @var array[] */
+ private $shifts = [];
+
+ /**
+ * ShiftCalendarLane constructor.
+ *
+ * @param string $header
+ * @param int $firstBlockStartTime Unix timestamp
+ * @param int $blockCount
+ */
+ public function __construct($header, $firstBlockStartTime, $blockCount)
+ {
+ $this->header = $header;
+ $this->firstBlockStartTime = $firstBlockStartTime;
+ $this->blockCount = $blockCount;
}
- return false;
- }
-
- /**
- * Returns true if given shift fits into this lane.
- *
- * @param Shift $shift
- * The shift to fit into this lane
- */
- public function shiftFits($newShift) {
- foreach ($this->shifts as $laneShift) {
- if (! ($newShift['start'] >= $laneShift['end'] || $newShift['end'] <= $laneShift['start'])) {
+
+ /**
+ * Adds a shift to the lane, but only if it fits.
+ * Returns true on success.
+ *
+ * @param array $shift The shift to add
+ * @return boolean true on success
+ */
+ public function addShift($shift)
+ {
+ if ($this->shiftFits($shift)) {
+ $this->shifts[] = $shift;
+ return true;
+ }
return false;
- }
}
- return true;
- }
- public function getHeader() {
- return $this->header;
- }
+ /**
+ * Returns true if given shift fits into this lane.
+ *
+ * @param array $newShift
+ * @return bool
+ * @internal param array $shift The shift to fit into this lane
+ */
+ public function shiftFits($newShift)
+ {
+ foreach ($this->shifts as $laneShift) {
+ if (!($newShift['start'] >= $laneShift['end'] || $newShift['end'] <= $laneShift['start'])) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * @return string
+ */
+ public function getHeader()
+ {
+ return $this->header;
+ }
- public function getShifts() {
- return $this->shifts;
- }
+ /**
+ * @return array[]
+ */
+ public function getShifts()
+ {
+ return $this->shifts;
+ }
}
-?> \ No newline at end of file