* SPDX-License-Identifier: AGPL-3.0-or-later */ namespace KTXF\People\Entity; use DateTimeInterface; use KTXF\Json\JsonSerializableObject; use KTXF\People\Entity\Property\CryptoCollection; use KTXF\People\Entity\Property\EmailCollection; use KTXF\People\Entity\Property\MediaCollection; use KTXF\People\Entity\Property\NameSimpleObject; use KTXF\People\Entity\Property\NoteCollection; use KTXF\People\Entity\Property\PhoneCollection; use KTXF\People\Entity\Property\PhysicalLocationCollection; use KTXF\People\Entity\Property\TagCollection; use KTXF\People\Entity\Property\VirtualLocationCollection; class OrganizationObject extends JsonSerializableObject { // Meta Information public string $type = 'organization'; public int $version = 1; public string|null $urid = null; public ?DateTimeInterface $created = null; public ?DateTimeInterface $modified = null; // Organization Information public string|null $label = null; public NameSimpleObject $names; // Location Information public PhysicalLocationCollection $physicalLocations; // Communication Information public PhoneCollection $phones; public EmailCollection $emails; public VirtualLocationCollection $virtualLocations; // Media Information public MediaCollection $media; // Organizational Information public TagCollection $tags; public NoteCollection $notes; // Other Information public CryptoCollection $crypto; public function __construct() { $this->names = new NameSimpleObject(); $this->physicalLocations = new PhysicalLocationCollection(); $this->phones = new PhoneCollection(); $this->emails = new EmailCollection(); $this->virtualLocations = new VirtualLocationCollection(); $this->media = new MediaCollection(); $this->tags = new TagCollection(); $this->notes = new NoteCollection(); $this->crypto = new CryptoCollection(); } }