summaryrefslogtreecommitdiff
path: root/src/Helpers/Schedule/Conference.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Helpers/Schedule/Conference.php')
-rw-r--r--src/Helpers/Schedule/Conference.php129
1 files changed, 129 insertions, 0 deletions
diff --git a/src/Helpers/Schedule/Conference.php b/src/Helpers/Schedule/Conference.php
new file mode 100644
index 00000000..0819d059
--- /dev/null
+++ b/src/Helpers/Schedule/Conference.php
@@ -0,0 +1,129 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Engelsystem\Helpers\Schedule;
+
+class Conference
+{
+ use CalculatesTime;
+
+ /** @var string required */
+ protected $title;
+
+ /** @var string required */
+ protected $acronym;
+
+ /** @var string|null */
+ protected $start;
+
+ /** @var string|null */
+ protected $end;
+
+ /** @var int|null */
+ protected $days;
+
+ /** @var string|null */
+ protected $timeslotDuration;
+
+ /** @var string|null */
+ protected $baseUrl;
+
+ /**
+ * Event constructor.
+ *
+ * @param string $title
+ * @param string $acronym
+ * @param string|null $start
+ * @param string|null $end
+ * @param int|null $days
+ * @param string|null $timeslotDuration
+ * @param string|null $baseUrl
+ */
+ public function __construct(
+ string $title,
+ string $acronym,
+ ?string $start = null,
+ ?string $end = null,
+ ?int $days = null,
+ ?string $timeslotDuration = null,
+ ?string $baseUrl = null
+ ) {
+ $this->title = $title;
+ $this->acronym = $acronym;
+ $this->start = $start;
+ $this->end = $end;
+ $this->days = $days;
+ $this->timeslotDuration = $timeslotDuration;
+ $this->baseUrl = $baseUrl;
+ }
+
+ /**
+ * @return string
+ */
+ public function getTitle(): string
+ {
+ return $this->title;
+ }
+
+ /**
+ * @return string
+ */
+ public function getAcronym(): string
+ {
+ return $this->acronym;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getStart(): ?string
+ {
+ return $this->start;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getEnd(): ?string
+ {
+ return $this->end;
+ }
+
+ /**
+ * @return int|null
+ */
+ public function getDays(): ?int
+ {
+ return $this->days;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getTimeslotDuration(): ?string
+ {
+ return $this->timeslotDuration;
+ }
+
+ /**
+ * @return int|null
+ */
+ public function getTimeslotDurationSeconds(): ?int
+ {
+ $duration = $this->getTimeslotDuration();
+ if (!$duration) {
+ return null;
+ }
+
+ return $this->secondsFromTime($duration);
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getBaseUrl(): ?string
+ {
+ return $this->baseUrl;
+ }
+}