* SPDX-License-Identifier: AGPL-3.0-or-later */ namespace KTXF\Mail\Collection; use KTXF\Resource\Provider\Node\NodePropertiesMutableAbstract; /** * Abstract Mail 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['label'] = $value; return $this; } /** * @inheritDoc */ public function setRole(CollectionRoles $value): static { $this->data['role'] = $value; return $this; } /** * @inheritDoc */ public function setRank(int $value): static { $this->data['rank'] = $value; return $this; } /** * @inheritDoc */ public function setSubscription(bool $value): static { $this->data['subscription'] = $value; return $this; } }