3 namespace Wallabag\CoreBundle\Entity
;
5 use Doctrine\Common\Collections\ArrayCollection
;
6 use Doctrine\ORM\Mapping
as ORM
;
7 use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity
;
8 use Symfony\Component\Security\Core\User\UserInterface
;
9 use JMS\Serializer\Annotation\ExclusionPolicy
;
10 use JMS\Serializer\Annotation\Expose
;
11 use FOS\UserBundle\Model\User
as BaseUser
;
16 * @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\UserRepository")
18 * @ORM\HasLifecycleCallbacks()
19 * @ExclusionPolicy("all")
21 * @UniqueEntity("email")
22 * @UniqueEntity("username")
24 class User
extends BaseUser
30 * @ORM\Column(name="id", type="integer")
32 * @ORM\GeneratedValue(strategy="AUTO")
39 * @ORM\Column(name="name", type="text", nullable=true)
46 * @ORM\Column(name="created_at", type="datetime")
53 * @ORM\Column(name="updated_at", type="datetime")
58 * @ORM\OneToMany(targetEntity="Entry", mappedBy="user", cascade={"remove"})
63 * @ORM\OneToOne(targetEntity="Config", mappedBy="user")
68 * @ORM\OneToMany(targetEntity="Tag", mappedBy="user", cascade={"remove"})
72 public function __construct()
74 parent
::__construct();
75 $this->entries
= new ArrayCollection();
76 $this->tags
= new ArrayCollection();
77 $this->roles
= array('ROLE_USER');
84 public function timestamps()
86 if (is_null($this->createdAt
)) {
87 $this->createdAt
= new \
DateTime();
90 $this->updatedAt
= new \
DateTime();
100 public function setName($name)
112 public function getName()
120 public function getCreatedAt()
122 return $this->createdAt
;
128 public function getUpdatedAt()
130 return $this->updatedAt
;
134 * @param Entry $entry
138 public function addEntry(Entry
$entry)
140 $this->entries
[] = $entry;
146 * @return ArrayCollection<Entry>
148 public function getEntries()
150 return $this->entries
;
154 * @param Entry $entry
158 public function addTag(Tag
$tag)
160 $this->tags
[] = $tag;
166 * @return ArrayCollection<Tag>
168 public function getTags()
173 public function isEqualTo(UserInterface
$user)
175 return $this->username
=== $user->getUsername();
181 * @param \Wallabag\CoreBundle\Entity\Config $config
185 public function setConfig(\Wallabag\CoreBundle\Entity\Config
$config = null)
187 $this->config
= $config;
195 * @return \Wallabag\CoreBundle\Entity\Config
197 public function getConfig()
199 return $this->config
;