<?php
namespace Evo\Infrastructure\MappingORM;
use ApiPlatform\Core\Annotation\ApiFilter;
use ApiPlatform\Core\Annotation\ApiResource;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\BooleanFilter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\OrderFilter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
use ApiPlatform\Core\Serializer\Filter\PropertyFilter;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
/**
* @ApiResource(attributes={
* "normalization_context"={"groups"={"read_document_rejection_message"}, "enable_max_depth"=true},
* "denormalization_context"={"groups"={"write_document_rejection_message"}}
* },
* itemOperations={
* "get",
* "put",
* "delete"
* }, attributes={"pagination_enabled"=false})
* @ApiFilter(SearchFilter::class, properties={"title": "partial", "categories": "exact"})
* @ApiFilter(BooleanFilter::class, properties={"archived"})
* @ApiFilter(OrderFilter::class, properties={"id"}, arguments={"orderParameterName"="order"})
* @ApiFilter(PropertyFilter::class)
* @ORM\Entity(repositoryClass="App\Repository\DocumentRejectionMessageRepository")
*/
class DocumentRejectionMessage
{
/**
* @Groups({"read_document_rejection_message"})
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private ?int $id = null;
/**
* @Groups({"read_document_rejection_message", "write_document_rejection_message", "write_document"})
* @ORM\Column(type="string", length=255)
*/
private ?string $title = null;
/**
* @Groups({"read_document_rejection_message", "write_document_rejection_message", "write_document"})
* @ORM\Column(type="text")
*/
private ?string $description = null;
/**
* @Groups({"read_document_rejection_message", "write_document_rejection_message", "write_document"})
* @ORM\Column(type="array", nullable=true)
*/
private $categories = [];
/**
* @Groups({"read_document_rejection_message", "write_document_rejection_message", "write_document"})
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $uniqueKey = null;
/**
* @ORM\Column(type="boolean", options={"default" : false})
*/
private bool $archived = false;
public function getId(): ?int
{
return $this->id;
}
public function getTitle(): ?string
{
return $this->title;
}
public function setTitle(string $title): self
{
$this->title = $title;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(string $description): self
{
$this->description = $description;
return $this;
}
public function __toString()
{
return $this->title;
}
public function getCategories(): ?array
{
return $this->categories;
}
public function setCategories(?array $categories): self
{
$this->categories = $categories;
return $this;
}
public function getUniqueKey(): ?string
{
return $this->uniqueKey;
}
public function setUniqueKey(?string $uniqueKey): self
{
$this->uniqueKey = $uniqueKey;
return $this;
}
public function isArchived(): ?bool
{
return $this->archived;
}
public function setArchived(bool $archived): self
{
$this->archived = $archived;
return $this;
}
}