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