2016-02-07 15:52:59 +00:00
|
|
|
<?php
|
|
|
|
|
2016-02-26 12:59:08 +00:00
|
|
|
namespace Wallabag\AnnotationBundle\Entity;
|
2016-02-07 15:52:59 +00:00
|
|
|
|
|
|
|
use Doctrine\ORM\Mapping as ORM;
|
|
|
|
use JMS\Serializer\Annotation\Exclude;
|
2017-07-01 07:52:38 +00:00
|
|
|
use JMS\Serializer\Annotation\ExclusionPolicy;
|
2016-10-02 14:06:42 +00:00
|
|
|
use JMS\Serializer\Annotation\Groups;
|
2017-07-01 07:52:38 +00:00
|
|
|
use JMS\Serializer\Annotation\SerializedName;
|
|
|
|
use JMS\Serializer\Annotation\VirtualProperty;
|
2017-05-07 15:21:30 +00:00
|
|
|
use Symfony\Component\Validator\Constraints as Assert;
|
2016-02-07 15:52:59 +00:00
|
|
|
use Wallabag\CoreBundle\Entity\Entry;
|
2017-07-01 07:52:38 +00:00
|
|
|
use Wallabag\UserBundle\Entity\User;
|
2016-02-07 15:52:59 +00:00
|
|
|
|
|
|
|
/**
|
2016-02-26 12:59:08 +00:00
|
|
|
* Annotation.
|
2016-02-07 15:52:59 +00:00
|
|
|
*
|
2016-02-26 12:59:08 +00:00
|
|
|
* @ORM\Table(name="annotation")
|
|
|
|
* @ORM\Entity(repositoryClass="Wallabag\AnnotationBundle\Repository\AnnotationRepository")
|
2016-02-07 15:52:59 +00:00
|
|
|
* @ORM\HasLifecycleCallbacks()
|
|
|
|
* @ExclusionPolicy("none")
|
|
|
|
*/
|
2016-02-26 12:59:08 +00:00
|
|
|
class Annotation
|
2016-02-07 15:52:59 +00:00
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @var int
|
|
|
|
*
|
|
|
|
* @ORM\Column(name="id", type="integer")
|
|
|
|
* @ORM\Id
|
|
|
|
* @ORM\GeneratedValue(strategy="AUTO")
|
|
|
|
*/
|
|
|
|
private $id;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var string
|
|
|
|
*
|
|
|
|
* @ORM\Column(name="text", type="text")
|
2016-10-02 14:06:42 +00:00
|
|
|
*
|
|
|
|
* @Groups({"entries_for_user", "export_all"})
|
2016-02-07 15:52:59 +00:00
|
|
|
*/
|
|
|
|
private $text;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var \DateTime
|
|
|
|
*
|
|
|
|
* @ORM\Column(name="created_at", type="datetime")
|
|
|
|
*/
|
|
|
|
private $createdAt;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var \DateTime
|
|
|
|
*
|
|
|
|
* @ORM\Column(name="updated_at", type="datetime")
|
|
|
|
*/
|
|
|
|
private $updatedAt;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var string
|
|
|
|
*
|
2017-05-07 15:21:30 +00:00
|
|
|
* @Assert\Length(
|
|
|
|
* max = 10000,
|
|
|
|
* maxMessage = "validator.quote_length_too_high"
|
|
|
|
* )
|
|
|
|
* @ORM\Column(name="quote", type="text")
|
2016-10-02 14:06:42 +00:00
|
|
|
*
|
|
|
|
* @Groups({"entries_for_user", "export_all"})
|
2016-02-07 15:52:59 +00:00
|
|
|
*/
|
|
|
|
private $quote;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var array
|
|
|
|
*
|
|
|
|
* @ORM\Column(name="ranges", type="array")
|
2016-10-02 14:06:42 +00:00
|
|
|
*
|
|
|
|
* @Groups({"entries_for_user", "export_all"})
|
2016-02-07 15:52:59 +00:00
|
|
|
*/
|
|
|
|
private $ranges;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @Exclude
|
|
|
|
*
|
|
|
|
* @ORM\ManyToOne(targetEntity="Wallabag\UserBundle\Entity\User")
|
|
|
|
*/
|
|
|
|
private $user;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @Exclude
|
|
|
|
*
|
2016-02-26 12:59:08 +00:00
|
|
|
* @ORM\ManyToOne(targetEntity="Wallabag\CoreBundle\Entity\Entry", inversedBy="annotations")
|
2016-10-01 07:26:32 +00:00
|
|
|
* @ORM\JoinColumn(name="entry_id", referencedColumnName="id", onDelete="cascade")
|
2016-02-07 15:52:59 +00:00
|
|
|
*/
|
|
|
|
private $entry;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @param User $user
|
|
|
|
*/
|
2016-03-27 17:20:43 +00:00
|
|
|
public function __construct(User $user)
|
2016-02-07 15:52:59 +00:00
|
|
|
{
|
|
|
|
$this->user = $user;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get id.
|
|
|
|
*
|
|
|
|
* @return int
|
|
|
|
*/
|
|
|
|
public function getId()
|
|
|
|
{
|
|
|
|
return $this->id;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set text.
|
|
|
|
*
|
|
|
|
* @param string $text
|
|
|
|
*
|
2016-02-26 12:59:08 +00:00
|
|
|
* @return Annotation
|
2016-02-07 15:52:59 +00:00
|
|
|
*/
|
|
|
|
public function setText($text)
|
|
|
|
{
|
|
|
|
$this->text = $text;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get text.
|
|
|
|
*
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
public function getText()
|
|
|
|
{
|
|
|
|
return $this->text;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @ORM\PrePersist
|
|
|
|
* @ORM\PreUpdate
|
|
|
|
*/
|
|
|
|
public function timestamps()
|
|
|
|
{
|
2017-07-01 07:52:38 +00:00
|
|
|
if (null === $this->createdAt) {
|
2016-02-07 15:52:59 +00:00
|
|
|
$this->createdAt = new \DateTime();
|
|
|
|
}
|
|
|
|
$this->updatedAt = new \DateTime();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get created.
|
|
|
|
*
|
|
|
|
* @return \DateTime
|
|
|
|
*/
|
|
|
|
public function getCreatedAt()
|
|
|
|
{
|
|
|
|
return $this->createdAt;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get updated.
|
|
|
|
*
|
|
|
|
* @return \DateTime
|
|
|
|
*/
|
|
|
|
public function getUpdatedAt()
|
|
|
|
{
|
|
|
|
return $this->updatedAt;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get quote.
|
|
|
|
*
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
public function getQuote()
|
|
|
|
{
|
|
|
|
return $this->quote;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set quote.
|
|
|
|
*
|
|
|
|
* @param string $quote
|
|
|
|
*
|
2016-02-26 12:59:08 +00:00
|
|
|
* @return Annotation
|
2016-02-07 15:52:59 +00:00
|
|
|
*/
|
|
|
|
public function setQuote($quote)
|
|
|
|
{
|
|
|
|
$this->quote = $quote;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get ranges.
|
|
|
|
*
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function getRanges()
|
|
|
|
{
|
|
|
|
return $this->ranges;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set ranges.
|
|
|
|
*
|
|
|
|
* @param array $ranges
|
|
|
|
*
|
2016-02-26 12:59:08 +00:00
|
|
|
* @return Annotation
|
2016-02-07 15:52:59 +00:00
|
|
|
*/
|
|
|
|
public function setRanges($ranges)
|
|
|
|
{
|
|
|
|
$this->ranges = $ranges;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set user.
|
|
|
|
*
|
2016-03-27 17:20:43 +00:00
|
|
|
* @param User $user
|
2016-02-07 15:52:59 +00:00
|
|
|
*
|
2016-02-26 12:59:08 +00:00
|
|
|
* @return Annotation
|
2016-02-07 15:52:59 +00:00
|
|
|
*/
|
|
|
|
public function setUser($user)
|
|
|
|
{
|
|
|
|
$this->user = $user;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get user.
|
|
|
|
*
|
2016-03-27 17:20:43 +00:00
|
|
|
* @return User
|
2016-02-07 15:52:59 +00:00
|
|
|
*/
|
|
|
|
public function getUser()
|
|
|
|
{
|
|
|
|
return $this->user;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @VirtualProperty
|
|
|
|
* @SerializedName("user")
|
|
|
|
*/
|
|
|
|
public function getUserName()
|
|
|
|
{
|
|
|
|
return $this->user->getName();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set entry.
|
|
|
|
*
|
|
|
|
* @param Entry $entry
|
|
|
|
*
|
2016-02-26 12:59:08 +00:00
|
|
|
* @return Annotation
|
2016-02-07 15:52:59 +00:00
|
|
|
*/
|
|
|
|
public function setEntry($entry)
|
|
|
|
{
|
|
|
|
$this->entry = $entry;
|
2016-02-26 12:59:08 +00:00
|
|
|
$entry->setAnnotation($this);
|
2016-02-07 15:52:59 +00:00
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get entry.
|
|
|
|
*
|
|
|
|
* @return Entry
|
|
|
|
*/
|
|
|
|
public function getEntry()
|
|
|
|
{
|
|
|
|
return $this->entry;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @VirtualProperty
|
|
|
|
* @SerializedName("annotator_schema_version")
|
|
|
|
*/
|
|
|
|
public function getVersion()
|
|
|
|
{
|
|
|
|
return 'v1.0';
|
|
|
|
}
|
|
|
|
}
|