<?php
namespace App\Entity;
use App\Repository\PermissionRepository;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=PermissionRepository::class)
* @ORM\Table(name="permission", uniqueConstraints={@ORM\UniqueConstraint(columns={"page_id","action_id"})})
*/
class Permission
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private ?int $id = null;
/**
* @ORM\ManyToOne(targetEntity=Page::class)
* @ORM\JoinColumn(name="page_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/
private ?Page $page = null;
/**
* @ORM\ManyToOne(targetEntity=Action::class)
* @ORM\JoinColumn(name="action_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/
private ?Action $action = null;
public function getId(): ?int
{
return $this->id;
}
public function getPage(): ?Page
{
return $this->page;
}
public function setPage(Page $page): self
{
$this->page = $page;
return $this;
}
public function getAction(): ?Action
{
return $this->action;
}
public function setAction(Action $action): self
{
$this->action = $action;
return $this;
}
public function __toString(): string
{
return sprintf('%s:%s', $this->page?->getCode() ?? 'page', $this->action?->getCode() ?? 'action');
}
}