<?php
namespace App\Entity;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
use App\Constant\BandMemberRoleConstant;
use App\Constant\InvitationStatusConstant;
/**
* @ORM\Entity
*/
class Invitation
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string $email
* @ORM\Column(name="email", type="string", nullable=true)
*/
private $email;
/**
* @ORM\ManyToOne(targetEntity="Band", inversedBy="invitations")
* @ORM\JoinColumn(name="band_id", referencedColumnName="id")
*/
private $band;
/**
* @var string
*
* @ORM\Column(name="role", type="string", length=255)
*/
private $role = BandMemberRoleConstant::MEMBER;
/**
* @var string $status
*
* @ORM\Column(name="status", type="string", length=255)
*/
private $status = InvitationStatusConstant::WAITING;
/**
* @var DateTime $createdAt
*
* @ORM\Column(type="datetime")
*/
private $createdAt;
/**
* @var User $createdBy
*
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(name="createdBy", referencedColumnName="id")
*/
private $createdBy;
/**
* @var DateTime $validatedAt
* @ORM\Column(name="validated_at", type="datetime", nullable=true)
*/
private $validatedAt;
/**
* Get id
*
* @return integer
*/
public function getId(): int
{
return $this->id;
}
/**
* Set email
*
* @param string $email
*
* @return Invitation
*/
public function setEmail(string $email): Invitation
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return string|null
*/
public function getEmail(): ?string
{
return $this->email;
}
/**
* Set role
*
* @param string $role
*
* @return Invitation
*/
public function setRole(string $role): Invitation
{
$this->role = $role;
return $this;
}
/**
* Get role
*
* @return string
*/
public function getRole(): string
{
return $this->role;
}
/**
* Set status
*
* @param string $status
*
* @return Invitation
*/
public function setStatus(string $status): Invitation
{
$this->status = $status;
return $this;
}
/**
* Get status
*
* @return string
*/
public function getStatus(): string
{
return $this->status;
}
/**
* Set createdAt
*
* @param DateTime $createdAt
*
* @return Invitation
*/
public function setCreatedAt(DateTime $createdAt): Invitation
{
$this->createdAt = $createdAt;
return $this;
}
/**
* Get createdAt
*
* @return DateTime
*/
public function getCreatedAt(): DateTime
{
return $this->createdAt;
}
/**
* Set validatedAt
*
* @param DateTime $validatedAt
*
* @return Invitation
*/
public function setValidatedAt(DateTime $validatedAt): Invitation
{
$this->validatedAt = $validatedAt;
return $this;
}
/**
* Get validatedAt
*
* @return DateTime
*/
public function getValidatedAt(): DateTime
{
return $this->validatedAt;
}
/**
* Set band
*
* @param Band|null $band
*
* @return Invitation
*/
public function setBand(Band $band = null): Invitation
{
$this->band = $band;
return $this;
}
/**
* Get band
*
* @return Band|null
*/
public function getBand(): ?Band
{
return $this->band;
}
/**
* Set createdBy
*
* @param User|null $createdBy
*
* @return Invitation
*/
public function setCreatedBy(User $createdBy = null): Invitation
{
$this->createdBy = $createdBy;
return $this;
}
/**
* Get createdBy
*
* @return User|null
*/
public function getCreatedBy(): ?User
{
return $this->createdBy;
}
}