]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Entity/Config.php
Update deps
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Entity / Config.php
index 045ca308ee99991303ae0ecb95c3a0bc7f565cdf..fe7942ee261bca550ff3ef2ece24634124c37599 100644 (file)
 
 namespace Wallabag\CoreBundle\Entity;
 
+use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\ORM\Mapping as ORM;
+use Symfony\Component\Validator\Constraints as Assert;
+use Wallabag\UserBundle\Entity\User;
 
 /**
- * Config
+ * Config.
  *
- * @ORM\Table(name="config")
- * @ORM\Entity
+ * @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\ConfigRepository")
+ * @ORM\Table(
+ *     name="`config`",
+ *     indexes={
+ *         @ORM\Index(name="config_feed_token", columns={"feed_token"}, options={"lengths"={255}}),
+ *     }
+ * )
  */
 class Config
 {
+    const REDIRECT_TO_HOMEPAGE = 0;
+    const REDIRECT_TO_CURRENT_PAGE = 1;
+
     /**
-     * @var integer
+     * @var int
      *
-     * @ORM\Column(name="id", type="integer", nullable=false)
+     * @ORM\Column(name="id", type="integer")
      * @ORM\Id
-     * @ORM\GeneratedValue(strategy="IDENTITY")
+     * @ORM\GeneratedValue(strategy="AUTO")
      */
     private $id;
 
     /**
      * @var string
      *
-     * @ORM\Column(name="name", type="string", nullable=true)
+     * @Assert\NotBlank()
+     * @ORM\Column(name="theme", type="string", nullable=false)
+     */
+    private $theme;
+
+    /**
+     * @var int
+     *
+     * @Assert\NotBlank()
+     * @Assert\Range(
+     *      min = 1,
+     *      max = 100000,
+     *      maxMessage = "validator.item_per_page_too_high"
+     * )
+     * @ORM\Column(name="items_per_page", type="integer", nullable=false)
+     */
+    private $itemsPerPage;
+
+    /**
+     * @var string
+     *
+     * @Assert\NotBlank()
+     * @ORM\Column(name="language", type="string", nullable=false)
+     */
+    private $language;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="feed_token", type="string", nullable=true)
+     */
+    private $feedToken;
+
+    /**
+     * @var int
+     *
+     * @ORM\Column(name="feed_limit", type="integer", nullable=true)
+     * @Assert\Range(
+     *      min = 1,
+     *      max = 100000,
+     *      maxMessage = "validator.feed_limit_too_high"
+     * )
+     */
+    private $feedLimit;
+
+    /**
+     * @var float
+     *
+     * @ORM\Column(name="reading_speed", type="float", nullable=true)
      */
-    private $name;
+    private $readingSpeed;
 
     /**
      * @var string
      *
-     * @ORM\Column(name="value", type="blob", nullable=true)
+     * @ORM\Column(name="pocket_consumer_key", type="string", nullable=true)
      */
-    private $value;
+    private $pocketConsumerKey;
 
     /**
-     * Get id
+     * @var int
      *
-     * @return integer
+     * @ORM\Column(name="action_mark_as_read", type="integer", nullable=true, options={"default" = 0})
+     */
+    private $actionMarkAsRead;
+
+    /**
+     * @var int
+     *
+     * @ORM\Column(name="list_mode", type="integer", nullable=true)
+     */
+    private $listMode;
+
+    /**
+     * @ORM\OneToOne(targetEntity="Wallabag\UserBundle\Entity\User", inversedBy="config")
+     */
+    private $user;
+
+    /**
+     * @ORM\OneToMany(targetEntity="Wallabag\CoreBundle\Entity\TaggingRule", mappedBy="config", cascade={"remove"})
+     * @ORM\OrderBy({"id" = "ASC"})
+     */
+    private $taggingRules;
+
+    /*
+     * @param User     $user
+     */
+    public function __construct(User $user)
+    {
+        $this->user = $user;
+        $this->taggingRules = new ArrayCollection();
+    }
+
+    /**
+     * Get id.
+     *
+     * @return int
      */
     public function getId()
     {
@@ -46,48 +139,252 @@ class Config
     }
 
     /**
-     * Set name
+     * Set theme.
+     *
+     * @param string $theme
+     *
+     * @return Config
+     */
+    public function setTheme($theme)
+    {
+        $this->theme = $theme;
+
+        return $this;
+    }
+
+    /**
+     * Get theme.
+     *
+     * @return string
+     */
+    public function getTheme()
+    {
+        return $this->theme;
+    }
+
+    /**
+     * Set itemsPerPage.
+     *
+     * @param int $itemsPerPage
+     *
+     * @return Config
+     */
+    public function setItemsPerPage($itemsPerPage)
+    {
+        $this->itemsPerPage = $itemsPerPage;
+
+        return $this;
+    }
+
+    /**
+     * Get itemsPerPage.
+     *
+     * @return int
+     */
+    public function getItemsPerPage()
+    {
+        return $this->itemsPerPage;
+    }
+
+    /**
+     * Set language.
+     *
+     * @param string $language
+     *
+     * @return Config
+     */
+    public function setLanguage($language)
+    {
+        $this->language = $language;
+
+        return $this;
+    }
+
+    /**
+     * Get language.
+     *
+     * @return string
+     */
+    public function getLanguage()
+    {
+        return $this->language;
+    }
+
+    /**
+     * Set user.
+     *
+     * @param User $user
      *
-     * @param  string $name
      * @return Config
      */
-    public function setName($name)
+    public function setUser(User $user = null)
     {
-        $this->name = $name;
+        $this->user = $user;
 
         return $this;
     }
 
     /**
-     * Get name
+     * Get user.
+     *
+     * @return User
+     */
+    public function getUser()
+    {
+        return $this->user;
+    }
+
+    /**
+     * Set feed Token.
+     *
+     * @param string $feedToken
+     *
+     * @return Config
+     */
+    public function setFeedToken($feedToken)
+    {
+        $this->feedToken = $feedToken;
+
+        return $this;
+    }
+
+    /**
+     * Get feedToken.
      *
      * @return string
      */
-    public function getName()
+    public function getFeedToken()
+    {
+        return $this->feedToken;
+    }
+
+    /**
+     * Set Feed Limit.
+     *
+     * @param int $feedLimit
+     *
+     * @return Config
+     */
+    public function setFeedLimit($feedLimit)
+    {
+        $this->feedLimit = $feedLimit;
+
+        return $this;
+    }
+
+    /**
+     * Get Feed Limit.
+     *
+     * @return int
+     */
+    public function getFeedLimit()
     {
-        return $this->name;
+        return $this->feedLimit;
     }
 
     /**
-     * Set value
+     * Set readingSpeed.
+     *
+     * @param float $readingSpeed
      *
-     * @param  string $value
      * @return Config
      */
-    public function setValue($value)
+    public function setReadingSpeed($readingSpeed)
     {
-        $this->value = $value;
+        $this->readingSpeed = $readingSpeed;
 
         return $this;
     }
 
     /**
-     * Get value
+     * Get readingSpeed.
+     *
+     * @return float
+     */
+    public function getReadingSpeed()
+    {
+        return $this->readingSpeed;
+    }
+
+    /**
+     * Set pocketConsumerKey.
+     *
+     * @param string $pocketConsumerKey
+     *
+     * @return Config
+     */
+    public function setPocketConsumerKey($pocketConsumerKey)
+    {
+        $this->pocketConsumerKey = $pocketConsumerKey;
+
+        return $this;
+    }
+
+    /**
+     * Get pocketConsumerKey.
      *
      * @return string
      */
-    public function getValue()
+    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;
+    }
+
+    /**
+     * @return int
+     */
+    public function getListMode()
+    {
+        return $this->listMode;
+    }
+
+    /**
+     * @param int $listMode
+     *
+     * @return Config
+     */
+    public function setListMode($listMode)
+    {
+        $this->listMode = $listMode;
+
+        return $this;
+    }
+
+    /**
+     * @return Config
+     */
+    public function addTaggingRule(TaggingRule $rule)
+    {
+        $this->taggingRules[] = $rule;
+
+        return $this;
+    }
+
+    /**
+     * @return ArrayCollection<TaggingRule>
+     */
+    public function getTaggingRules()
     {
-        return $this->value;
+        return $this->taggingRules;
     }
 }