2015-03-22 17:22:49 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Skobkin\Bundle\PointToolsBundle\Entity;
|
|
|
|
|
|
|
|
use Doctrine\Common\Collections\ArrayCollection;
|
|
|
|
use Doctrine\ORM\Mapping as ORM;
|
|
|
|
|
|
|
|
/**
|
2016-12-11 03:03:59 +00:00
|
|
|
* @ORM\Table(name="users", schema="users")
|
2016-03-23 16:59:06 +00:00
|
|
|
* @ORM\Entity(repositoryClass="Skobkin\Bundle\PointToolsBundle\Repository\UserRepository")
|
2015-05-28 17:36:52 +00:00
|
|
|
* @ORM\HasLifecycleCallbacks
|
2015-03-22 17:22:49 +00:00
|
|
|
*/
|
|
|
|
class User
|
|
|
|
{
|
2017-01-11 18:03:32 +00:00
|
|
|
const AVATAR_SIZE_SMALL = '24';
|
|
|
|
const AVATAR_SIZE_MEDIUM = '40';
|
|
|
|
const AVATAR_SIZE_LARGE = '80';
|
|
|
|
|
2015-03-22 17:22:49 +00:00
|
|
|
/**
|
2017-01-08 15:29:12 +00:00
|
|
|
* @var int
|
2015-03-22 17:22:49 +00:00
|
|
|
*
|
|
|
|
* @ORM\Column(name="id", type="integer")
|
|
|
|
* @ORM\Id
|
|
|
|
*/
|
|
|
|
private $id;
|
|
|
|
|
2015-03-23 23:41:41 +00:00
|
|
|
/**
|
|
|
|
* @var string
|
|
|
|
*
|
2015-10-01 18:15:49 +00:00
|
|
|
* @ORM\Column(name="login", type="string", length=255, nullable=false)
|
2015-03-23 23:41:41 +00:00
|
|
|
*/
|
|
|
|
private $login;
|
2015-03-27 19:49:21 +00:00
|
|
|
|
2015-03-22 17:22:49 +00:00
|
|
|
/**
|
2017-01-12 18:49:38 +00:00
|
|
|
* @var string|null
|
2015-03-22 17:22:49 +00:00
|
|
|
*
|
2015-05-28 17:36:52 +00:00
|
|
|
* @ORM\Column(name="name", type="string", length=255, nullable=true)
|
2015-03-22 17:22:49 +00:00
|
|
|
*/
|
|
|
|
private $name;
|
|
|
|
|
2015-05-28 17:36:52 +00:00
|
|
|
/**
|
|
|
|
* @var \DateTime
|
|
|
|
*
|
|
|
|
* @ORM\Column(name="created_at", type="datetime")
|
|
|
|
*/
|
|
|
|
private $createdAt;
|
|
|
|
|
2016-03-23 19:36:44 +00:00
|
|
|
/**
|
|
|
|
* @var \DateTime
|
|
|
|
*
|
2016-03-23 21:29:57 +00:00
|
|
|
* @ORM\Column(name="updated_at", type="datetime", nullable=true)
|
2016-03-23 19:36:44 +00:00
|
|
|
*/
|
|
|
|
private $updatedAt;
|
|
|
|
|
2015-03-22 17:22:49 +00:00
|
|
|
/**
|
2017-01-09 18:29:39 +00:00
|
|
|
* @var ArrayCollection|Subscription[]
|
2015-03-22 17:22:49 +00:00
|
|
|
*
|
2017-01-04 22:36:30 +00:00
|
|
|
* @ORM\OneToMany(targetEntity="Subscription", mappedBy="author", fetch="EXTRA_LAZY")
|
2015-03-22 17:22:49 +00:00
|
|
|
*/
|
|
|
|
private $subscribers;
|
|
|
|
|
|
|
|
/**
|
2017-01-09 18:29:39 +00:00
|
|
|
* @var ArrayCollection|Subscription[]
|
2015-03-22 17:22:49 +00:00
|
|
|
*
|
2017-01-04 22:36:30 +00:00
|
|
|
* @ORM\OneToMany(targetEntity="Subscription", mappedBy="subscriber", fetch="EXTRA_LAZY")
|
2015-03-22 17:22:49 +00:00
|
|
|
*/
|
|
|
|
private $subscriptions;
|
2015-03-27 19:49:21 +00:00
|
|
|
|
2015-03-23 15:39:00 +00:00
|
|
|
/**
|
2017-01-09 18:29:39 +00:00
|
|
|
* @var ArrayCollection|SubscriptionEvent[]
|
2017-01-08 15:29:12 +00:00
|
|
|
* @ORM\OneToMany(targetEntity="SubscriptionEvent", mappedBy="author", fetch="EXTRA_LAZY")
|
2015-03-23 15:39:00 +00:00
|
|
|
*/
|
|
|
|
private $newSubscriberEvents;
|
2015-03-22 17:22:49 +00:00
|
|
|
|
|
|
|
|
2017-01-08 15:29:12 +00:00
|
|
|
public function __construct(int $id, string $login = null, string $name = null)
|
2015-03-22 17:22:49 +00:00
|
|
|
{
|
2015-10-05 00:56:16 +00:00
|
|
|
$this->id = $id;
|
|
|
|
$this->login = $login;
|
|
|
|
$this->name = $name;
|
2017-01-12 22:58:52 +00:00
|
|
|
$this->createdAt = new \DateTime();
|
2015-10-05 00:56:16 +00:00
|
|
|
|
2015-03-22 17:22:49 +00:00
|
|
|
$this->subscribers = new ArrayCollection();
|
|
|
|
$this->subscriptions = new ArrayCollection();
|
2015-03-23 15:39:00 +00:00
|
|
|
$this->newSubscriberEvents = new ArrayCollection();
|
2015-03-22 17:22:49 +00:00
|
|
|
}
|
|
|
|
|
2016-03-23 19:36:44 +00:00
|
|
|
/**
|
|
|
|
* @ORM\PreUpdate
|
|
|
|
*/
|
2017-01-12 22:58:52 +00:00
|
|
|
public function preUpdate(): void
|
2016-03-23 19:36:44 +00:00
|
|
|
{
|
|
|
|
$this->updatedAt = new \DateTime();
|
|
|
|
}
|
|
|
|
|
2017-01-08 15:29:12 +00:00
|
|
|
public function getId(): int
|
2015-03-22 17:22:49 +00:00
|
|
|
{
|
|
|
|
return $this->id;
|
|
|
|
}
|
2015-03-27 19:49:21 +00:00
|
|
|
|
2017-01-08 15:29:12 +00:00
|
|
|
public function setLogin(string $login): self
|
2015-03-23 23:41:41 +00:00
|
|
|
{
|
|
|
|
$this->login = $login;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
2017-01-08 15:29:12 +00:00
|
|
|
public function getLogin(): string
|
2015-03-23 23:41:41 +00:00
|
|
|
{
|
|
|
|
return $this->login;
|
|
|
|
}
|
2015-03-22 17:22:49 +00:00
|
|
|
|
2017-01-12 22:58:52 +00:00
|
|
|
public function setName(?string $name): self
|
2015-03-22 17:22:49 +00:00
|
|
|
{
|
|
|
|
$this->name = $name;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
2017-01-12 22:58:52 +00:00
|
|
|
public function getName(): ?string
|
2015-03-22 17:22:49 +00:00
|
|
|
{
|
|
|
|
return $this->name;
|
|
|
|
}
|
|
|
|
|
2017-01-08 15:29:12 +00:00
|
|
|
public function addSubscriber(Subscription $subscribers): self
|
2015-03-22 17:22:49 +00:00
|
|
|
{
|
|
|
|
$this->subscribers[] = $subscribers;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function removeSubscriber(Subscription $subscribers)
|
|
|
|
{
|
|
|
|
$this->subscribers->removeElement($subscribers);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2015-06-02 02:39:09 +00:00
|
|
|
* @return Subscription[]|ArrayCollection
|
2015-03-22 17:22:49 +00:00
|
|
|
*/
|
|
|
|
public function getSubscribers()
|
|
|
|
{
|
|
|
|
return $this->subscribers;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2017-01-08 15:29:12 +00:00
|
|
|
* @return Subscription[]|ArrayCollection
|
2015-03-22 17:22:49 +00:00
|
|
|
*/
|
|
|
|
public function getSubscriptions()
|
|
|
|
{
|
|
|
|
return $this->subscriptions;
|
|
|
|
}
|
2015-03-23 15:39:00 +00:00
|
|
|
|
2017-01-08 15:29:12 +00:00
|
|
|
public function addNewSubscriberEvent(SubscriptionEvent $newSubscriberEvents): self
|
2015-03-23 15:39:00 +00:00
|
|
|
{
|
|
|
|
$this->newSubscriberEvents[] = $newSubscriberEvents;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2017-01-08 15:29:12 +00:00
|
|
|
* @return SubscriptionEvent[]|ArrayCollection
|
2015-03-23 15:39:00 +00:00
|
|
|
*/
|
|
|
|
public function getNewSubscriberEvents()
|
|
|
|
{
|
|
|
|
return $this->newSubscriberEvents;
|
|
|
|
}
|
2015-05-28 17:36:52 +00:00
|
|
|
|
2017-01-08 15:29:12 +00:00
|
|
|
public function getCreatedAt(): \DateTime
|
2015-05-28 17:36:52 +00:00
|
|
|
{
|
|
|
|
return $this->createdAt;
|
|
|
|
}
|
|
|
|
|
2017-01-08 15:29:12 +00:00
|
|
|
public function setCreatedAt(\DateTime $createdAt): self
|
2015-05-28 17:36:52 +00:00
|
|
|
{
|
|
|
|
$this->createdAt = $createdAt;
|
2017-01-08 15:29:12 +00:00
|
|
|
|
2015-05-28 17:36:52 +00:00
|
|
|
return $this;
|
|
|
|
}
|
2016-03-23 19:36:44 +00:00
|
|
|
|
2017-01-12 22:58:52 +00:00
|
|
|
public function getUpdatedAt(): ?\DateTime
|
2016-03-23 19:36:44 +00:00
|
|
|
{
|
|
|
|
return $this->updatedAt;
|
|
|
|
}
|
2015-03-22 17:22:49 +00:00
|
|
|
}
|