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