* SPDX-License-Identifier: AGPL-3.0-or-later */ namespace KTXF\People\Collection; /** * Abstract Collection Properties Mutable Class */ abstract class CollectionPropertiesMutableAbstract extends CollectionPropertiesBaseAbstract implements CollectionPropertiesMutableInterface { public const JSON_TYPE = CollectionPropertiesBaseInterface::JSON_TYPE; /** * @inheritDoc */ public function jsonDeserialize(array|string $data): static { if (is_string($data)) { $data = json_decode($data, true); } $this->data = $data; return $this; } /** * @inheritDoc */ public function setLabel(string $value): static { $this->data[self::JSON_PROPERTY_LABEL] = $value; return $this; } /** * @inheritDoc */ public function setDescription(?string $value): static { $this->data[self::JSON_PROPERTY_DESCRIPTION] = $value; return $this; } /** * @inheritDoc */ public function setPriority(?int $value): static { $this->data[self::JSON_PROPERTY_PRIORITY] = $value; return $this; } /** * @inheritDoc */ public function setVisibility(?bool $value): static { $this->data[self::JSON_PROPERTY_VISIBILITY] = $value; return $this; } /** * @inheritDoc */ public function setColor(?string $value): static { $this->data[self::JSON_PROPERTY_COLOR] = $value; return $this; } }