mirror of
https://github.com/chylex/Nextcloud-News.git
synced 2024-12-22 14:42:47 +01:00
323f215e3a
Signed-off-by: Paul Tirk <paultirk@paultirk.com>
183 lines
3.9 KiB
PHP
183 lines
3.9 KiB
PHP
<?php
|
|
/**
|
|
* Nextcloud - News
|
|
*
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
* later. See the COPYING file.
|
|
*
|
|
* @author Alessandro Cosentino <cosenal@gmail.com>
|
|
* @author Bernhard Posselt <dev@bernhard-posselt.com>
|
|
* @author Paul Tirk <paultirk@paultirk.com>
|
|
* @copyright 2012 Alessandro Cosentino
|
|
* @copyright 2012-2014 Bernhard Posselt
|
|
* @copyright 2020 Paul Tirk
|
|
*/
|
|
|
|
namespace OCA\News\Db;
|
|
|
|
use OCP\AppFramework\Db\Entity;
|
|
|
|
class Folder extends Entity implements IAPI, \JsonSerializable
|
|
{
|
|
use EntityJSONSerializer;
|
|
|
|
/** @var int|null */
|
|
protected $parentId;
|
|
/** @var string */
|
|
protected $name;
|
|
/** @var string */
|
|
protected $userId = '';
|
|
/** @var bool */
|
|
protected $opened = true;
|
|
/** @var int|null */
|
|
protected $deletedAt = 0;
|
|
/** @var string|null */
|
|
protected $lastModified = '0';
|
|
/** @var Feed[] */
|
|
public $feeds = [];
|
|
|
|
public function __construct()
|
|
{
|
|
$this->addType('parentId', 'integer');
|
|
$this->addType('name', 'string');
|
|
$this->addType('userId', 'string');
|
|
$this->addType('opened', 'boolean');
|
|
$this->addType('deletedAt', 'integer');
|
|
$this->addType('lastModified', 'string');
|
|
}
|
|
|
|
/**
|
|
* @return int|null
|
|
*/
|
|
public function getDeletedAt(): ?int
|
|
{
|
|
return $this->deletedAt;
|
|
}
|
|
|
|
/**
|
|
* @return string|null
|
|
*/
|
|
public function getLastModified(): ?string
|
|
{
|
|
return $this->lastModified;
|
|
}
|
|
|
|
public function getName(): string
|
|
{
|
|
return $this->name;
|
|
}
|
|
|
|
public function getOpened(): bool
|
|
{
|
|
return $this->opened;
|
|
}
|
|
|
|
/**
|
|
* @return int|null
|
|
*/
|
|
public function getParentId(): ?int
|
|
{
|
|
return $this->parentId;
|
|
}
|
|
|
|
public function getUserId(): string
|
|
{
|
|
return $this->userId;
|
|
}
|
|
|
|
/**
|
|
* Turns entity attributes into an array
|
|
*/
|
|
public function jsonSerialize(): array
|
|
{
|
|
return $this->serializeFields(
|
|
[
|
|
'id',
|
|
'parentId',
|
|
'name',
|
|
'userId',
|
|
'opened',
|
|
'deletedAt',
|
|
]
|
|
);
|
|
}
|
|
|
|
public function setDeletedAt(?int $deletedAt = null): self
|
|
{
|
|
if ($this->deletedAt !== $deletedAt) {
|
|
$this->deletedAt = $deletedAt;
|
|
$this->markFieldUpdated('deletedAt');
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function setLastModified(?string $lastModified = null): self
|
|
{
|
|
|
|
if ($this->lastModified !== $lastModified) {
|
|
$this->lastModified = $lastModified;
|
|
$this->markFieldUpdated('lastModified');
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function setName(string $name): self
|
|
{
|
|
if ($this->name !== $name) {
|
|
$this->name = $name;
|
|
$this->markFieldUpdated('name');
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function setOpened(bool $opened): self
|
|
{
|
|
if ($this->opened !== $opened) {
|
|
$this->opened = $opened;
|
|
$this->markFieldUpdated('opened');
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function setParentId(?int $parentId = null): self
|
|
{
|
|
if ($this->parentId !== $parentId) {
|
|
$this->parentId = $parentId;
|
|
$this->markFieldUpdated('parentId');
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function setUserId(string $userId): self
|
|
{
|
|
if ($this->userId !== $userId) {
|
|
$this->userId = $userId;
|
|
$this->markFieldUpdated('userId');
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function toAPI(): array
|
|
{
|
|
return $this->serializeFields(
|
|
[
|
|
'id',
|
|
'name',
|
|
'opened',
|
|
'feeds'
|
|
]
|
|
);
|
|
}
|
|
|
|
public function toAPI2(bool $reduced = false): array
|
|
{
|
|
return $this->toAPI();
|
|
}
|
|
}
|