* SPDX-License-Identifier: AGPL-3.0-or-later */ namespace KTXF\People\Entity; use DateTimeImmutable; use KTXF\People\Entity\Individual\IndividualObject; interface IEntityBase extends \JsonSerializable { public const JSON_TYPE = 'people.entity'; public const JSON_PROPERTY_TYPE = '@type'; public const JSON_PROPERTY_IN = 'in'; public const JSON_PROPERTY_ID = 'id'; public const JSON_PROPERTY_DATA = 'data'; public const JSON_PROPERTY_CREATED = 'created'; public const JSON_PROPERTY_MODIFIED = 'modified'; public const JSON_PROPERTY_SIGNATURE = 'signature'; /** * Unique arbitrary text string identifying the collection this entity belongs to (e.g. 1 or Collection1 or anything else) * * @since 2025.05.01 */ public function in(): string|int; /** * Unique arbitrary text string identifying this service (e.g. 1 or Entity or anything else) * * @since 2025.05.01 */ public function id(): string|int; /** * Gets the creation date of this entity */ public function created(): ?DateTimeImmutable; /** * Gets the modification date of this entity */ public function modified(): ?DateTimeImmutable; /** * Gets the signature of this entity * * @since 2025.05.01 */ public function signature(): ?string; /** * Gets the priority of this entity * * @since 2025.05.01 */ public function getPriority(): ?int; /** * Gets the visibility of this entity * * @since 2025.05.01 */ public function getVisibility(): ?bool; /** * Gets the color of this entity * * @since 2025.05.01 */ public function getColor(): ?string; /** * Gets the object as a class instance. * * @since 2025.05.01 */ public function getDataObject(): IndividualObject|null; /** * Gets the raw data as an associative array or JSON string. * * @since 2025.05.01 * * @return array|string|null */ public function getDataJson(): array|string|null; }