<?php namespace OCA\OrganizationFolders\Db; use JsonSerializable; use OCA\OrganizationFolders\Interface\TableSerializable; use OCP\AppFramework\Db\Entity; abstract class Resource extends Entity implements JsonSerializable, TableSerializable { protected $organizationFolderId; protected $parentResource; protected $name; protected $active; protected $inheritManagers; protected $lastUpdatedTimestamp; public function __construct() { $this->addType('organizationFolderId','integer'); $this->addType('parentResource','integer'); $this->addType('active','bool'); $this->addType('inheritManagers','bool'); $this->addType('lastUpdatedTimestamp','integer'); } abstract public function getType(): string; public function limitedJsonSerialize(): array { return [ 'id' => $this->id, 'parentResource' => $this->parentResource, 'organizationFolderId' => $this->organizationFolderId, 'type' => $this->getType(), 'name' => $this->name, ]; } }