Files
wallabag/src/Entity/Config.php

513 lines
9.6 KiB
PHP
Raw Normal View History

2015-01-22 17:18:56 +01:00
<?php
2024-02-19 01:30:12 +01:00
namespace Wallabag\Entity;
2015-01-22 17:18:56 +01:00
2015-10-11 22:22:24 +02:00
use Doctrine\Common\Collections\ArrayCollection;
2015-01-22 17:18:56 +01:00
use Doctrine\ORM\Mapping as ORM;
2022-03-15 10:44:32 +01:00
use JMS\Serializer\Annotation\Groups;
2015-02-11 21:06:32 +01:00
use Symfony\Component\Validator\Constraints as Assert;
2025-04-05 12:55:51 +02:00
use Wallabag\Repository\ConfigRepository;
2015-01-22 17:18:56 +01:00
/**
2015-05-30 13:52:26 +02:00
* Config.
2015-01-22 17:18:56 +01:00
*/
2025-04-05 12:55:51 +02:00
#[ORM\Table(name: '`config`')]
#[ORM\Index(columns: ['feed_token'])]
#[ORM\Entity(repositoryClass: ConfigRepository::class)]
2015-01-22 17:18:56 +01:00
class Config
{
2022-12-13 10:26:51 +01:00
public const REDIRECT_TO_HOMEPAGE = 0;
public const REDIRECT_TO_CURRENT_PAGE = 1;
2016-11-07 09:30:37 +01:00
2015-01-22 17:18:56 +01:00
/**
2015-05-30 13:52:26 +02:00
* @var int
2015-01-22 17:18:56 +01:00
*
2022-03-15 10:44:32 +01:00
* @Groups({"config_api"})
2015-01-22 17:18:56 +01:00
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'id', type: 'integer')]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'AUTO')]
2015-01-22 17:18:56 +01:00
private $id;
/**
2015-05-30 13:52:26 +02:00
* @var int
2015-01-22 17:18:56 +01:00
*
2022-03-15 10:44:32 +01:00
* @Groups({"config_api"})
2015-02-16 21:28:49 +01:00
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'items_per_page', type: 'integer', nullable: false)]
2025-04-05 15:06:57 +02:00
#[Assert\NotBlank]
#[Assert\Range(min: 1, max: 100000, maxMessage: 'validator.item_per_page_too_high')]
2015-03-28 14:27:45 +01:00
private $itemsPerPage;
2015-02-16 21:28:49 +01:00
/**
* @var string
*
2022-03-15 10:44:32 +01:00
* @Groups({"config_api"})
2015-01-22 17:18:56 +01:00
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'language', type: 'string', nullable: false)]
2025-04-05 15:06:57 +02:00
#[Assert\NotBlank]
2015-02-16 21:28:49 +01:00
private $language;
2015-03-28 14:27:45 +01:00
/**
2023-11-16 09:36:47 +01:00
* @var string|null
2015-03-28 14:27:45 +01:00
*
2022-03-15 10:44:32 +01:00
* @Groups({"config_api"})
2015-03-28 14:27:45 +01:00
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'feed_token', type: 'string', nullable: true)]
private $feedToken;
2015-03-28 14:27:45 +01:00
/**
2023-11-16 09:36:47 +01:00
* @var int|null
2015-03-28 14:27:45 +01:00
*
2022-03-15 10:44:32 +01:00
* @Groups({"config_api"})
2015-03-28 14:27:45 +01:00
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'feed_limit', type: 'integer', nullable: true)]
2025-04-05 15:06:57 +02:00
#[Assert\Range(min: 1, max: 100000, maxMessage: 'validator.feed_limit_too_high')]
private $feedLimit;
2015-03-28 14:27:45 +01:00
/**
2023-11-16 09:36:47 +01:00
* @var float|null
*
2022-03-15 10:44:32 +01:00
* @Groups({"config_api"})
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'reading_speed', type: 'float', nullable: true)]
private $readingSpeed;
2016-09-16 22:22:25 +02:00
/**
2023-11-16 09:36:47 +01:00
* @var string|null
2016-09-16 22:22:25 +02:00
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'pocket_consumer_key', type: 'string', nullable: true)]
2016-09-16 22:22:25 +02:00
private $pocketConsumerKey;
/**
2023-11-16 09:36:47 +01:00
* @var int|null
*
2022-03-15 10:44:32 +01:00
* @Groups({"config_api"})
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'action_mark_as_read', type: 'integer', nullable: true, options: ['default' => 0])]
private $actionMarkAsRead;
2016-11-28 11:02:10 +01:00
/**
2023-11-16 09:36:47 +01:00
* @var int|null
2016-11-28 11:02:10 +01:00
*
2022-03-15 10:44:32 +01:00
* @Groups({"config_api"})
2016-11-28 11:02:10 +01:00
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'list_mode', type: 'integer', nullable: true)]
private $listMode;
2016-11-28 11:02:10 +01:00
/**
2023-11-16 09:36:47 +01:00
* @var int|null
*
* @Groups({"config_api"})
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'display_thumbnails', type: 'integer', nullable: true, options: ['default' => 1])]
private $displayThumbnails;
/**
2023-11-16 09:36:47 +01:00
* @var string|null
*
* @Groups({"config_api"})
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'font', type: 'text', nullable: true)]
private $font;
/**
2023-11-16 09:36:47 +01:00
* @var float|null
*
* @Groups({"config_api"})
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'fontsize', type: 'float', nullable: true)]
private $fontsize;
/**
2023-11-16 09:36:47 +01:00
* @var float|null
*
* @Groups({"config_api"})
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'line_height', type: 'float', nullable: true)]
private $lineHeight;
/**
2023-11-16 09:36:47 +01:00
* @var float|null
*
* @Groups({"config_api"})
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'max_width', type: 'float', nullable: true)]
private $maxWidth;
/**
2023-11-16 09:36:47 +01:00
* @var string|null
*/
2025-04-05 12:55:51 +02:00
#[ORM\Column(name: 'custom_css', type: 'text', nullable: true)]
private $customCSS;
2025-04-05 12:55:51 +02:00
#[ORM\OneToOne(targetEntity: User::class, inversedBy: 'config')]
2015-02-16 21:28:49 +01:00
private $user;
2015-10-11 17:14:50 +02:00
/**
2023-08-08 02:27:21 +01:00
* @var ArrayCollection<TaggingRule>
2015-10-11 17:14:50 +02:00
*/
2025-04-05 12:55:51 +02:00
#[ORM\OneToMany(targetEntity: TaggingRule::class, mappedBy: 'config', cascade: ['remove'])]
#[ORM\OrderBy(['id' => 'ASC'])]
2015-10-11 17:14:50 +02:00
private $taggingRules;
/**
2024-01-01 19:11:01 +01:00
* @var ArrayCollection<IgnoreOriginUserRule>
*/
2025-04-05 12:55:51 +02:00
#[ORM\OneToMany(targetEntity: IgnoreOriginUserRule::class, mappedBy: 'config', cascade: ['remove'])]
#[ORM\OrderBy(['id' => 'ASC'])]
private $ignoreOriginRules;
2015-02-16 21:28:49 +01:00
/*
* @param User $user
*/
public function __construct(User $user)
2015-02-16 21:28:49 +01:00
{
$this->user = $user;
2015-10-11 17:14:50 +02:00
$this->taggingRules = new ArrayCollection();
$this->ignoreOriginRules = new ArrayCollection();
2015-02-16 21:28:49 +01:00
}
2015-01-22 17:18:56 +01:00
/**
2015-05-30 13:52:26 +02:00
* Get id.
2015-01-22 17:18:56 +01:00
*
2015-05-30 13:52:26 +02:00
* @return int
2015-01-22 17:18:56 +01:00
*/
public function getId()
{
return $this->id;
}
/**
2015-05-30 13:52:26 +02:00
* Set itemsPerPage.
*
* @param int $itemsPerPage
2015-01-22 17:18:56 +01:00
*
* @return Config
*/
2015-02-16 21:28:49 +01:00
public function setItemsPerPage($itemsPerPage)
2015-01-22 17:18:56 +01:00
{
2015-03-28 14:27:45 +01:00
$this->itemsPerPage = $itemsPerPage;
2015-01-22 17:18:56 +01:00
return $this;
}
/**
2015-05-30 13:52:26 +02:00
* Get itemsPerPage.
2015-02-16 21:28:49 +01:00
*
2015-05-30 13:52:26 +02:00
* @return int
2015-02-16 21:28:49 +01:00
*/
public function getItemsPerPage()
{
2015-03-28 14:27:45 +01:00
return $this->itemsPerPage;
2015-02-16 21:28:49 +01:00
}
/**
2015-05-30 13:52:26 +02:00
* Set language.
*
* @param string $language
2015-02-16 21:28:49 +01:00
*
* @return Config
*/
public function setLanguage($language)
{
$this->language = $language;
return $this;
}
/**
2015-05-30 13:52:26 +02:00
* Get language.
2015-01-22 17:18:56 +01:00
*
2015-01-31 19:09:34 +01:00
* @return string
2015-01-22 17:18:56 +01:00
*/
2015-02-16 21:28:49 +01:00
public function getLanguage()
{
return $this->language;
}
/**
2015-05-30 13:52:26 +02:00
* Set user.
*
2015-02-16 21:28:49 +01:00
* @return Config
*/
2024-02-19 09:31:30 +01:00
public function setUser(?User $user = null)
2015-02-16 21:28:49 +01:00
{
$this->user = $user;
return $this;
}
/**
2015-05-30 13:52:26 +02:00
* Get user.
2015-02-16 21:28:49 +01:00
*
* @return User
2015-02-16 21:28:49 +01:00
*/
public function getUser()
2015-01-22 17:18:56 +01:00
{
2015-02-16 21:28:49 +01:00
return $this->user;
2015-01-22 17:18:56 +01:00
}
2015-03-28 14:27:45 +01:00
/**
* Set feed Token.
2015-05-30 13:52:26 +02:00
*
* @param string $feedToken
2015-03-28 14:27:45 +01:00
*
* @return Config
*/
public function setFeedToken($feedToken)
2015-03-28 14:27:45 +01:00
{
$this->feedToken = $feedToken;
2015-03-28 14:27:45 +01:00
return $this;
}
/**
* Get feedToken.
2015-03-28 14:27:45 +01:00
*
* @return string
*/
public function getFeedToken()
2015-03-28 14:27:45 +01:00
{
return $this->feedToken;
2015-03-28 14:27:45 +01:00
}
/**
* Set Feed Limit.
2015-05-30 13:52:26 +02:00
*
* @param int $feedLimit
2015-03-28 14:27:45 +01:00
*
* @return Config
*/
public function setFeedLimit($feedLimit)
2015-03-28 14:27:45 +01:00
{
$this->feedLimit = $feedLimit;
2015-03-28 14:27:45 +01:00
return $this;
}
/**
* Get Feed Limit.
2015-03-28 14:27:45 +01:00
*
* @return int
2015-03-28 14:27:45 +01:00
*/
public function getFeedLimit()
2015-03-28 14:27:45 +01:00
{
return $this->feedLimit;
2015-03-28 14:27:45 +01:00
}
2015-10-11 17:14:50 +02:00
/**
* Set readingSpeed.
*
2016-03-18 13:12:09 +01:00
* @param float $readingSpeed
*
* @return Config
*/
public function setReadingSpeed($readingSpeed)
{
$this->readingSpeed = $readingSpeed;
return $this;
}
/**
* Get readingSpeed.
*
2016-03-18 13:12:09 +01:00
* @return float
*/
public function getReadingSpeed()
{
return $this->readingSpeed;
}
2016-09-16 22:22:25 +02:00
/**
* Set pocketConsumerKey.
*
* @param string $pocketConsumerKey
*
* @return Config
*/
public function setPocketConsumerKey($pocketConsumerKey)
{
$this->pocketConsumerKey = $pocketConsumerKey;
return $this;
}
/**
* Get pocketConsumerKey.
*
* @return string
*/
public function getPocketConsumerKey()
{
return $this->pocketConsumerKey;
}
/**
* @return int
*/
public function getActionMarkAsRead()
{
return $this->actionMarkAsRead;
}
/**
* @param int $actionMarkAsRead
*
* @return Config
*/
public function setActionMarkAsRead($actionMarkAsRead)
{
$this->actionMarkAsRead = $actionMarkAsRead;
return $this;
}
2016-11-28 11:02:10 +01:00
/**
* @return int
*/
public function getListMode()
2016-11-28 11:02:10 +01:00
{
return $this->listMode;
2016-11-28 11:02:10 +01:00
}
/**
* @param int $listMode
2016-11-28 11:02:10 +01:00
*
* @return Config
*/
public function setListMode($listMode)
2016-11-28 11:02:10 +01:00
{
$this->listMode = $listMode;
2016-11-28 11:02:10 +01:00
return $this;
}
2023-08-08 02:27:21 +01:00
public function getDisplayThumbnails(): bool
{
2023-08-08 02:27:21 +01:00
return (bool) $this->displayThumbnails;
}
/**
* @return Config
*/
public function setDisplayThumbnails(bool $displayThumbnails)
{
2023-08-08 02:27:21 +01:00
$this->displayThumbnails = $displayThumbnails ? 1 : 0;
return $this;
}
public function getFont(): ?string
{
return $this->font;
}
/**
* @return $this
*/
public function setFont(string $font): self
{
$this->font = $font;
return $this;
}
public function getFontsize(): ?float
{
return $this->fontsize;
}
/**
* @return $this
*/
public function setFontsize(float $fontsize): self
{
$this->fontsize = $fontsize;
return $this;
}
public function getLineHeight(): ?float
{
return $this->lineHeight;
}
/**
* @return $this
*/
public function setLineHeight(float $lineHeight): self
{
$this->lineHeight = $lineHeight;
return $this;
}
public function getMaxWidth(): ?float
{
return $this->maxWidth;
}
/**
* @return $this
*/
public function setMaxWidth(float $maxWidth): self
{
$this->maxWidth = $maxWidth;
return $this;
}
public function getCustomCSS(): ?string
{
return $this->customCSS;
}
/**
* @return $this
*/
public function setCustomCSS(?string $customCSS): self
{
$this->customCSS = $customCSS;
return $this;
}
2015-10-11 17:14:50 +02:00
/**
* @return Config
*/
public function addTaggingRule(TaggingRule $rule)
{
$this->taggingRules[] = $rule;
return $this;
}
/**
* @return ArrayCollection<TaggingRule>
*/
public function getTaggingRules()
{
return $this->taggingRules;
}
/**
* @return Config
*/
public function addIgnoreOriginRule(IgnoreOriginUserRule $rule)
{
$this->ignoreOriginRules[] = $rule;
return $this;
}
/**
* @return ArrayCollection<IgnoreOriginUserRule>
*/
public function getIgnoreOriginRules()
{
return $this->ignoreOriginRules;
}
2015-01-22 17:18:56 +01:00
}