Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
14 / 14
CRAP
100.00% covered (success)
100.00%
1 / 1
Conference
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
14 / 14
15
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getTitle
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getAcronym
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getStart
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getEnd
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getDays
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getTimeslotDuration
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getTimeslotDurationSeconds
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
 getBaseUrl
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getLogo
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getUrl
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getTimeZoneName
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getColor
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getTracks
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Engelsystem\Helpers\Schedule;
6
7class Conference extends ScheduleData
8{
9    use CalculatesTime;
10
11    /**
12     * @param ConferenceTrack[] $tracks
13     */
14    public function __construct(
15        protected string $title,
16        protected string $acronym,
17        protected ?string $start = null,
18        protected ?string $end = null,
19        protected ?int $days = null,
20        protected ?string $timeslotDuration = null,
21        protected ?string $baseUrl = null,
22        protected ?string $logo = null,
23        protected ?string $url = null,
24        protected ?string $timeZoneName = null,
25        protected ?ConferenceColor $color = null,
26        protected array $tracks = [],
27    ) {
28    }
29
30    public function getTitle(): string
31    {
32        return $this->title;
33    }
34
35    public function getAcronym(): string
36    {
37        return $this->acronym;
38    }
39
40    public function getStart(): ?string
41    {
42        return $this->start;
43    }
44
45    public function getEnd(): ?string
46    {
47        return $this->end;
48    }
49
50    public function getDays(): ?int
51    {
52        return $this->days;
53    }
54
55    public function getTimeslotDuration(): ?string
56    {
57        return $this->timeslotDuration;
58    }
59
60    public function getTimeslotDurationSeconds(): ?int
61    {
62        $duration = $this->getTimeslotDuration();
63        if (!$duration) {
64            return null;
65        }
66
67        return $this->secondsFromTime($duration);
68    }
69
70    public function getBaseUrl(): ?string
71    {
72        return $this->baseUrl;
73    }
74
75    public function getLogo(): ?string
76    {
77        return $this->logo;
78    }
79
80    public function getUrl(): ?string
81    {
82        return $this->url;
83    }
84
85    public function getTimeZoneName(): ?string
86    {
87        return $this->timeZoneName;
88    }
89
90    public function getColor(): ?ConferenceColor
91    {
92        return $this->color;
93    }
94
95    /**
96     * @return ConferenceTrack[]
97     */
98    public function getTracks(): array
99    {
100        return $this->tracks;
101    }
102}