* SPDX-License-Identifier: AGPL-3.0-or-later */ namespace KTXF\Chrono\Event; use DateInterval; use DateTime; use DateTimeImmutable; use DateTimeZone; use KTXF\Json\JsonSerializableObject; class EventCommonObject extends JsonSerializableObject { public int|null $sequence = null; public DateTimeZone|null $timeZone = null; public DateTime|DateTimeImmutable|null $startsOn = null; public DateTimeZone|null $startsTZ = null; public DateTime|DateTimeImmutable|null $endsOn = null; public DateTimeZone|null $endsTZ = null; public DateInterval|null $duration = null; public bool|null $timeless = false; public string|null $label = null; public string|null $description = null; public EventLocationPhysicalCollection $locationsPhysical; public EventLocationVirtualCollection $locationsVirtual; public EventAvailabilityTypes|null $availability = null; public EventSensitivityTypes|null $sensitivity = null; public int|null $priority = null; public string|null $color = null; public EventTagCollection $tags; public EventOrganizerObject $organizer; public EventParticipantCollection $participants; public EventNotificationCollection $notifications; public function __construct() { $this->participants = new EventParticipantCollection(); $this->locationsPhysical = new EventLocationPhysicalCollection(); $this->locationsVirtual = new EventLocationVirtualCollection(); $this->notifications = new EventNotificationCollection(); $this->organizer = new EventOrganizerObject(); $this->tags = new EventTagCollection(); } }