* SPDX-License-Identifier: AGPL-3.0-or-later */ namespace KTXF\People\Entity\Individual; use DateTimeInterface; use KTXF\Json\JsonSerializableObject; class IndividualObject extends JsonSerializableObject { // Meta Information public string $type = 'individual'; public int $version = 1; public string|null $urid = null; public ?DateTimeInterface $created = null; public ?DateTimeInterface $modified = null; // Personal Information public string|null $label = null; public IndividualNameObject $names; public IndividualTitleCollection $titles; public IndividualAnniversaryCollection $anniversaries; // Location Information public IndividualPhysicalLocationCollection $physicalLocations; // Communication Information public IndividualPhoneCollection $phones; public IndividualEmailCollection $emails; public IndividualVirtualLocationCollection $virtualLocations; // Media Information public IndividualMediaCollection $media; // Organizations Information public IndividualOrganizationCollection $organizations; // Organizational Information public IndividualTagCollection $tags; public IndividualNoteCollection $notes; // Localization Information public string|null $language = null; public IndividualLanguageCollection $languages; // Other Information public IndividualCryptoCollection $crypto; public function __construct() { $this->names = new IndividualNameObject(); $this->anniversaries = new IndividualAnniversaryCollection(); $this->phones = new IndividualPhoneCollection(); $this->emails = new IndividualEmailCollection(); $this->physicalLocations = new IndividualPhysicalLocationCollection(); $this->organizations = new IndividualOrganizationCollection(); $this->titles = new IndividualTitleCollection(); $this->tags = new IndividualTagCollection(); $this->notes = new IndividualNoteCollection(); $this->crypto = new IndividualCryptoCollection(); $this->virtualLocations = new IndividualVirtualLocationCollection(); $this->media = new IndividualMediaCollection(); } }