addType('id', 'integer'); $this->addType('boardId', 'integer'); $this->addType('cardId', 'integer'); $this->addType('lastModified', 'integer'); $this->addType('customSettings', 'string'); } public function getETag() { return md5((string)$this->getLastModified()); } public function getCustomSettingsArray(): array { return $this->customSettings ? json_decode($this->customSettings, true) : []; } public function setCustomSettingsArray(array $customSettings): void { $this->setCustomSettings(json_encode($customSettings ?: new \stdClass())); } public function jsonSerialize(): array { $data = parent::jsonSerialize(); $data['customSettings'] = $this->getCustomSettingsArray() ?: new \stdClass(); return $data; } }