<?php
namespace App\Entity;
use ApiPlatform\Metadata\ApiResource;
use App\Repository\PermissionRepository;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
use ApiPlatform\Metadata\ApiFilter;
use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
#[ORM\Entity(repositoryClass: PermissionRepository::class)]
#[ApiResource(
normalizationContext: ['groups' => ['permission:read']],
denormalizationContext: ['groups' => ['permission:write']],
order: ['id' => 'ASC'],
)]
#[ApiFilter(SearchFilter::class, properties: ['role' => 'exact'])]
class Permission
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
#[Groups(['permission:read', 'permission:write', 'role:read', 'user:read'])]
private ?int $id = null;
#[Groups(['permission:read', 'permission:write', 'role:read', 'user:read'])]
#[ORM\ManyToOne(inversedBy: 'permissions')]
private ?Role $role = null;
#[Groups(['permission:read', 'permission:write', 'role:read', 'user:read'])]
#[ORM\Column(length: 255)]
private ?string $entity = null;
#[Groups(['permission:read', 'permission:write', 'role:read', 'user:read'])]
#[ORM\Column(length: 50, nullable: true)]
private ?string $operation = null;
#[Groups(['permission:read', 'permission:write', 'role:read', 'user:read'])]
#[ORM\ManyToOne(inversedBy: 'permissions')]
private ?EntityLists $entityList = null;
public function getId(): ?int
{
return $this->id;
}
public function getRole(): ?Role
{
return $this->role;
}
public function setRole(?Role $role): static
{
$this->role = $role;
return $this;
}
public function getEntity(): ?string
{
return $this->entity;
}
public function setEntity(string $entity): static
{
$this->entity = $entity;
return $this;
}
public function getOperation(): ?string
{
return $this->operation;
}
public function setOperation(?string $operation): static
{
$this->operation = $operation;
return $this;
}
public function getEntityList(): ?EntityLists
{
return $this->entityList;
}
public function setEntityList(?EntityLists $entityList): static
{
$this->entityList = $entityList;
return $this;
}
}