Files
server/shared/lib/Chrono/Event/EventCommonObject.php
2025-12-21 10:09:54 -05:00

51 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: Sebastian Krupinski <krupinski01@gmail.com>
* 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();
}
}