<?php
namespace Sq\Entity\Schema\ORM;
use Doctrine\ORM\Mapping as ORM;
/**
* AdminTag.
*/
#[ORM\Entity]
#[ORM\Table(name: 'admin_tag_assignments')]
#[ORM\UniqueConstraint(name: 'at_assignment', columns: ['ata_at_id', 'ata_m_id'])]
class AdminTagAssignment
{
/**
* @var int
*/
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'IDENTITY')]
#[ORM\Column(name: 'ata_id', type: 'integer', nullable: false, options: ['unsigned' => true])]
private $id;
/**
* @var AdminTag
*/
#[ORM\ManyToOne(targetEntity: AdminTag::class, fetch: 'EAGER')]
#[ORM\JoinColumn(name: 'ata_at_id', referencedColumnName: 'at_id', nullable: false)]
private $adminTag;
/**
* @var Member
*/
#[ORM\ManyToOne(targetEntity: Member::class, inversedBy: 'adminTagAssignments', fetch: 'EAGER')]
#[ORM\JoinColumn(name: 'ata_m_id', referencedColumnName: 'm_id', nullable: false)]
private $assignedTo;
/**
* @var Member|null
*/
#[ORM\ManyToOne(targetEntity: Member::class)]
#[ORM\JoinColumn(name: 'ata_created_by', referencedColumnName: 'm_id', nullable: true)]
private $assignedBy;
/**
* @var \DateTimeInterface
*/
#[ORM\Column(name: 'ata_datetime', type: 'datetime', nullable: false)]
private $createdAt;
public function __construct(
AdminTag $adminTag,
Member $assignedTo,
?Member $assignedBy,
?\DateTimeInterface $createdAt = null
) {
$this->adminTag = $adminTag;
$this->assignedTo = $assignedTo;
$this->assignedBy = $assignedBy;
$this->createdAt = clone ($createdAt ?: new \DateTimeImmutable);
}
public function getId(): ?int
{
return $this->id;
}
public function getAdminTag(): AdminTag
{
return $this->adminTag;
}
public function setAdminTag(AdminTag $adminTag): self
{
$this->adminTag = $adminTag;
return $this;
}
public function getAssignedTo(): Member
{
return $this->assignedTo;
}
public function setAssignedTo(Member $assignedTo): self
{
$this->assignedTo = $assignedTo;
return $this;
}
public function getAssignedBy(): ?Member
{
return $this->assignedBy;
}
public function setAssignedBy(?Member $assignedBy): self
{
$this->assignedBy = $assignedBy;
return $this;
}
public function getCreatedAt(): \DateTimeInterface
{
return clone $this->createdAt;
}
public function setCreatedAt(\DateTimeInterface $createdAt): self
{
$this->createdAt = clone $createdAt;
return $this;
}
}