<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity;
use Symfony\Component\Validator\Constraints as Assert;
use Wandi\ToolsBundle\Util\TokenGenerator;
/**
* @ORM\Entity(repositoryClass="App\Repository\InvitationRecipientRepository")
*/
class InvitationRecipient
{
use TimestampableEntity;
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=128)
* @Assert\NotBlank()
*/
private $email;
/**
* @ORM\Column(type="string", length=20, nullable=true)
*/
private $token;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Invitation", inversedBy="recipients")
* @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
*/
private $invitation;
/**
* @ORM\Column(type="boolean")
* @Assert\Type("bool")
*/
private $registered;
/**
* @var \DateTime
*
* @ORM\Column(type="datetime", nullable=true)
*/
protected $registeredAt;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User")
* @ORM\JoinColumn(nullable=true)
*/
private $user;
/**
* Article constructor.
*/
public function __construct()
{
$this->token = TokenGenerator::generate(20);
$this->registered = false;
}
public function __toString()
{
return $this->email;
}
public function getId(): ?int
{
return $this->id;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(string $email): self
{
$this->email = $email;
return $this;
}
public function getToken(): ?string
{
return $this->token;
}
public function setToken(?string $token): self
{
$this->token = $token;
return $this;
}
public function getRegistered(): ?bool
{
return $this->registered;
}
public function setRegistered(bool $registered): self
{
$this->registered = $registered;
return $this;
}
public function getInvitation(): ?Invitation
{
return $this->invitation;
}
public function setInvitation(?Invitation $invitation): self
{
$this->invitation = $invitation;
return $this;
}
public function getRegisteredAt(): ?\DateTime
{
return $this->registeredAt;
}
public function setRegisteredAt(?\DateTime $registeredAt = null): self
{
$this->registeredAt = $registeredAt;
return $this;
}
public function getUser(): ?user
{
return $this->user;
}
public function setUser(?user $user = null): self
{
$this->user = $user;
return $this;
}
}