<?php
declare(strict_types=1);
namespace App\Program\Doctrine\Entity;
use App\Shared\Doctrine\Entity\Email;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\GeneratedValue;
use Doctrine\ORM\Mapping\Id;
use Doctrine\ORM\Mapping\JoinColumn;
use Doctrine\ORM\Mapping\ManyToOne;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints\NotBlank;
#[Entity]
class ProgramEmail
{
#[Id]
#[Column(type: 'integer')]
#[GeneratedValue]
#[Groups('read')]
private ?int $id = null;
#[ManyToOne]
#[JoinColumn(nullable: false, onDelete: 'CASCADE')]
private Email $email;
#[ManyToOne(inversedBy: 'emails')]
#[JoinColumn(nullable: false, onDelete: 'CASCADE')]
private Program $program;
#[Column(type: 'integer')]
#[NotBlank]
private int $templateId;
public function getId(): ?int
{
return $this->id;
}
public function getEmail(): Email
{
return $this->email;
}
public function setEmail(Email $email): self
{
$this->email = $email;
return $this;
}
public function getTemplateId(): int
{
return $this->templateId;
}
public function setTemplateId(int $templateId): self
{
$this->templateId = $templateId;
return $this;
}
public function getProgram(): Program
{
return $this->program;
}
public function setProgram(Program $program): self
{
$this->program = $program;
return $this;
}
}