]> git.immae.eu Git - github/wallabag/wallabag.git/blob - src/Wallabag/CoreBundle/Entity/Entry.php
remove isDeleted flag
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Entity / Entry.php
1 <?php
2
3 namespace Wallabag\CoreBundle\Entity;
4
5 use Doctrine\ORM\Mapping as ORM;
6 use Symfony\Component\Validator\Constraints as Assert;
7 use Hateoas\Configuration\Annotation as Hateoas;
8 use JMS\Serializer\Annotation\XmlRoot;
9
10 /**
11 * Entry
12 *
13 * @XmlRoot("entry")
14 * @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\EntryRepository")
15 * @ORM\Table(name="entry")
16 * @ORM\HasLifecycleCallbacks()
17 * @Hateoas\Relation("self", href = "expr('/api/entries/' ~ object.getId())")
18 */
19 class Entry
20 {
21 /** @Serializer\XmlAttribute */
22 /**
23 * @var integer
24 *
25 * @ORM\Column(name="id", type="integer")
26 * @ORM\Id
27 * @ORM\GeneratedValue(strategy="AUTO")
28 */
29 private $id;
30
31 /**
32 * @var string
33 *
34 * @ORM\Column(name="title", type="text", nullable=true)
35 */
36 private $title;
37
38 /**
39 * @var string
40 *
41 * @Assert\NotBlank()
42 * @ORM\Column(name="url", type="text", nullable=true)
43 */
44 private $url;
45
46 /**
47 * @var boolean
48 *
49 * @ORM\Column(name="is_archived", type="boolean")
50 */
51 private $isArchived = false;
52
53 /**
54 * @var boolean
55 *
56 * @ORM\Column(name="is_starred", type="boolean")
57 */
58 private $isStarred = false;
59
60 /**
61 * @var string
62 *
63 * @ORM\Column(name="content", type="text", nullable=true)
64 */
65 private $content;
66
67 /**
68 * @var date
69 *
70 * @ORM\Column(name="created_at", type="datetime")
71 */
72 private $createdAt;
73
74 /**
75 * @var date
76 *
77 * @ORM\Column(name="updated_at", type="datetime")
78 */
79 private $updatedAt;
80
81 /**
82 * @var string
83 *
84 * @ORM\Column(name="comments", type="text", nullable=true)
85 */
86 private $comments;
87
88 /**
89 * @var string
90 *
91 * @ORM\Column(name="mimetype", type="text", nullable=true)
92 */
93 private $mimetype;
94
95 /**
96 * @var integer
97 *
98 * @ORM\Column(name="reading_type", type="integer", nullable=true)
99 */
100 private $readingTime;
101
102 /**
103 * @var string
104 *
105 * @ORM\Column(name="domain_name", type="text", nullable=true)
106 */
107 private $domainName;
108
109 /**
110 * @var boolean
111 *
112 * @ORM\Column(name="is_public", type="boolean", nullable=true, options={"default" = false})
113 */
114 private $isPublic;
115
116 /**
117 * @ORM\ManyToOne(targetEntity="User", inversedBy="entries")
118 */
119 private $user;
120
121 /*
122 * @param User $user
123 */
124 public function __construct(User $user)
125 {
126 $this->user = $user;
127 }
128
129 /**
130 * Get id
131 *
132 * @return integer
133 */
134 public function getId()
135 {
136 return $this->id;
137 }
138
139 /**
140 * Set title
141 *
142 * @param string $title
143 * @return Entry
144 */
145 public function setTitle($title)
146 {
147 $this->title = $title;
148
149 return $this;
150 }
151
152 /**
153 * Get title
154 *
155 * @return string
156 */
157 public function getTitle()
158 {
159 return $this->title;
160 }
161
162 /**
163 * Set url
164 *
165 * @param string $url
166 * @return Entry
167 */
168 public function setUrl($url)
169 {
170 $this->url = $url;
171
172 return $this;
173 }
174
175 /**
176 * Get url
177 *
178 * @return string
179 */
180 public function getUrl()
181 {
182 return $this->url;
183 }
184
185 /**
186 * Set isArchived
187 *
188 * @param string $isArchived
189 * @return Entry
190 */
191 public function setArchived($isArchived)
192 {
193 $this->isArchived = $isArchived;
194
195 return $this;
196 }
197
198 /**
199 * Get isArchived
200 *
201 * @return string
202 */
203 public function isArchived()
204 {
205 return $this->isArchived;
206 }
207
208 public function toggleArchive()
209 {
210 $this->isArchived = $this->isArchived() ^ 1;
211
212 return $this;
213 }
214
215 /**
216 * Set isStarred
217 *
218 * @param string $isStarred
219 * @return Entry
220 */
221 public function setStarred($isStarred)
222 {
223 $this->isStarred = $isStarred;
224
225 return $this;
226 }
227
228 /**
229 * Get isStarred
230 *
231 * @return string
232 */
233 public function isStarred()
234 {
235 return $this->isStarred;
236 }
237
238 public function toggleStar()
239 {
240 $this->isStarred = $this->isStarred() ^ 1;
241
242 return $this;
243 }
244
245 /**
246 * Set content
247 *
248 * @param string $content
249 * @return Entry
250 */
251 public function setContent($content)
252 {
253 $this->content = $content;
254
255 return $this;
256 }
257
258 /**
259 * Get content
260 *
261 * @return string
262 */
263 public function getContent()
264 {
265 return $this->content;
266 }
267
268 /**
269 * @return User
270 */
271 public function getUser()
272 {
273 return $this->user;
274 }
275
276 /**
277 * @return string
278 */
279 public function getCreatedAt()
280 {
281 return $this->createdAt;
282 }
283
284 /**
285 * @return string
286 */
287 public function getUpdatedAt()
288 {
289 return $this->updatedAt;
290 }
291
292 /**
293 * @ORM\PrePersist
294 * @ORM\PreUpdate
295 */
296 public function timestamps()
297 {
298 if (is_null($this->createdAt)) {
299 $this->createdAt = new \DateTime();
300 }
301
302 $this->updatedAt = new \DateTime();
303 }
304
305 /**
306 * @return string
307 */
308 public function getComments()
309 {
310 return $this->comments;
311 }
312
313 /**
314 * @param string $comments
315 */
316 public function setComments($comments)
317 {
318 $this->comments = $comments;
319 }
320
321 /**
322 * @return string
323 */
324 public function getMimetype()
325 {
326 return $this->mimetype;
327 }
328
329 /**
330 * @param string $mimetype
331 */
332 public function setMimetype($mimetype)
333 {
334 $this->mimetype = $mimetype;
335 }
336
337 /**
338 * @return int
339 */
340 public function getReadingTime()
341 {
342 return $this->readingTime;
343 }
344
345 /**
346 * @param int $readingTime
347 */
348 public function setReadingTime($readingTime)
349 {
350 $this->readingTime = $readingTime;
351 }
352
353 /**
354 * @return string
355 */
356 public function getDomainName()
357 {
358 return $this->domainName;
359 }
360
361 /**
362 * @param string $domainName
363 */
364 public function setDomainName($domainName)
365 {
366 $this->domainName = $domainName;
367 }
368
369 /**
370 * @return boolean
371 */
372 public function isPublic()
373 {
374 return $this->isPublic;
375 }
376
377 /**
378 * @param boolean $isPublic
379 */
380 public function setPublic($isPublic)
381 {
382 $this->isPublic = $isPublic;
383 }
384 }