addType('id', 'integer'); $this->addType('lastUpdated', 'datetime'); $this->addType('input', 'string'); $this->addType('status', 'integer'); $this->addType('userId', 'string'); $this->addType('appId', 'string'); $this->addType('identifier', 'string'); $this->addType('numberOfImages', 'integer'); $this->addType('completionExpectedAt', 'datetime'); } public function toRow(): array { return array_combine(self::$columns, array_map(function ($field) { return $this->{'get'.ucfirst($field)}(); }, self::$fields)); } public static function fromPublicTask(OCPTask $task): Task { /** @var Task $dbTask */ $dbTask = Task::fromParams([ 'id' => $task->getId(), 'lastUpdated' => \OCP\Server::get(ITimeFactory::class)->getDateTime(), 'status' => $task->getStatus(), 'numberOfImages' => $task->getNumberOfImages(), 'input' => $task->getInput(), 'userId' => $task->getUserId(), 'appId' => $task->getAppId(), 'identifier' => $task->getIdentifier(), 'completionExpectedAt' => $task->getCompletionExpectedAt(), ]); return $dbTask; } public function toPublicTask(): OCPTask { $task = new OCPTask($this->getInput(), $this->getAppId(), $this->getNumberOfImages(), $this->getuserId(), $this->getIdentifier()); $task->setId($this->getId()); $task->setStatus($this->getStatus()); $task->setCompletionExpectedAt($this->getCompletionExpectedAt()); return $task; } }