]> git.immae.eu Git - github/wallabag/wallabag.git/blob - src/Wallabag/CoreBundle/Entity/Config.php
Merge pull request #1478 from K-Phoen/rule-based-tags
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Entity / Config.php
1 <?php
2
3 namespace Wallabag\CoreBundle\Entity;
4
5 use Doctrine\Common\Collections\ArrayCollection;
6 use Doctrine\ORM\Mapping as ORM;
7 use Symfony\Component\Validator\Constraints as Assert;
8
9 /**
10 * Config.
11 *
12 * @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\ConfigRepository")
13 * @ORM\Table(name="`config`")
14 * @ORM\Entity
15 */
16 class Config
17 {
18 /**
19 * @var int
20 *
21 * @ORM\Column(name="id", type="integer")
22 * @ORM\Id
23 * @ORM\GeneratedValue(strategy="AUTO")
24 */
25 private $id;
26
27 /**
28 * @var string
29 *
30 * @Assert\NotBlank()
31 * @ORM\Column(name="theme", type="string", nullable=false)
32 */
33 private $theme;
34
35 /**
36 * @var int
37 *
38 * @Assert\NotBlank()
39 * @Assert\Range(
40 * min = 1,
41 * max = 100000,
42 * maxMessage = "This will certainly kill the app"
43 * )
44 * @ORM\Column(name="items_per_page", type="integer", nullable=false)
45 */
46 private $itemsPerPage;
47
48 /**
49 * @var string
50 *
51 * @Assert\NotBlank()
52 * @ORM\Column(name="language", type="string", nullable=false)
53 */
54 private $language;
55
56 /**
57 * @var string
58 *
59 * @ORM\Column(name="rss_token", type="string", nullable=true)
60 */
61 private $rssToken;
62
63 /**
64 * @var int
65 *
66 * @ORM\Column(name="rss_limit", type="integer", nullable=true)
67 * @Assert\Range(
68 * min = 1,
69 * max = 100000,
70 * maxMessage = "This will certainly kill the app"
71 * )
72 */
73 private $rssLimit;
74
75 /**
76 * @ORM\OneToOne(targetEntity="Wallabag\UserBundle\Entity\User", inversedBy="config")
77 */
78 private $user;
79
80 /**
81 * @ORM\OneToMany(targetEntity="Wallabag\CoreBundle\Entity\TaggingRule", mappedBy="config", cascade={"remove"})
82 * @ORM\OrderBy({"id" = "ASC"})
83 */
84 private $taggingRules;
85
86 /*
87 * @param User $user
88 */
89 public function __construct(\Wallabag\UserBundle\Entity\User $user)
90 {
91 $this->user = $user;
92 $this->taggingRules = new ArrayCollection();
93 }
94
95 /**
96 * Get id.
97 *
98 * @return int
99 */
100 public function getId()
101 {
102 return $this->id;
103 }
104
105 /**
106 * Set theme.
107 *
108 * @param string $theme
109 *
110 * @return Config
111 */
112 public function setTheme($theme)
113 {
114 $this->theme = $theme;
115
116 return $this;
117 }
118
119 /**
120 * Get theme.
121 *
122 * @return string
123 */
124 public function getTheme()
125 {
126 return $this->theme;
127 }
128
129 /**
130 * Set itemsPerPage.
131 *
132 * @param int $itemsPerPage
133 *
134 * @return Config
135 */
136 public function setItemsPerPage($itemsPerPage)
137 {
138 $this->itemsPerPage = $itemsPerPage;
139
140 return $this;
141 }
142
143 /**
144 * Get itemsPerPage.
145 *
146 * @return int
147 */
148 public function getItemsPerPage()
149 {
150 return $this->itemsPerPage;
151 }
152
153 /**
154 * Set language.
155 *
156 * @param string $language
157 *
158 * @return Config
159 */
160 public function setLanguage($language)
161 {
162 $this->language = $language;
163
164 return $this;
165 }
166
167 /**
168 * Get language.
169 *
170 * @return string
171 */
172 public function getLanguage()
173 {
174 return $this->language;
175 }
176
177 /**
178 * Set user.
179 *
180 * @param User $user
181 *
182 * @return Config
183 */
184 public function setUser(\Wallabag\UserBundle\Entity\User $user = null)
185 {
186 $this->user = $user;
187
188 return $this;
189 }
190
191 /**
192 * Get user.
193 *
194 * @return User
195 */
196 public function getUser()
197 {
198 return $this->user;
199 }
200
201 /**
202 * Set rssToken.
203 *
204 * @param string $rssToken
205 *
206 * @return Config
207 */
208 public function setRssToken($rssToken)
209 {
210 $this->rssToken = $rssToken;
211
212 return $this;
213 }
214
215 /**
216 * Get rssToken.
217 *
218 * @return string
219 */
220 public function getRssToken()
221 {
222 return $this->rssToken;
223 }
224
225 /**
226 * Set rssLimit.
227 *
228 * @param string $rssLimit
229 *
230 * @return Config
231 */
232 public function setRssLimit($rssLimit)
233 {
234 $this->rssLimit = $rssLimit;
235
236 return $this;
237 }
238
239 /**
240 * Get rssLimit.
241 *
242 * @return string
243 */
244 public function getRssLimit()
245 {
246 return $this->rssLimit;
247 }
248
249 /**
250 * @param TaggingRule $rule
251 *
252 * @return Config
253 */
254 public function addTaggingRule(TaggingRule $rule)
255 {
256 $this->taggingRules[] = $rule;
257
258 return $this;
259 }
260
261 /**
262 * @return ArrayCollection<TaggingRule>
263 */
264 public function getTaggingRules()
265 {
266 return $this->taggingRules;
267 }
268 }