src/Entity/Parametro.php line 50

  1. <?php
  2. namespace App\Entity;
  3. use ApiPlatform\Doctrine\Orm\Filter\OrderFilter;
  4. use Symfony\Component\Serializer\Annotation\Groups;
  5. use Ramsey\Uuid\Uuid;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use App\Trait\UuidTrait;
  8. use App\Trait\TimestampableTrait;
  9. use App\Trait\BlameableTrait;
  10. use App\State\ParametroStateProcessor;
  11. use App\Repository\ParametroRepository;
  12. use ApiPlatform\Metadata\Put;
  13. use ApiPlatform\Metadata\Post;
  14. use ApiPlatform\Metadata\Patch;
  15. use ApiPlatform\Metadata\GetCollection;
  16. use ApiPlatform\Metadata\Get;
  17. use ApiPlatform\Metadata\Delete;
  18. use ApiPlatform\Metadata\ApiResource;
  19. use ApiPlatform\Metadata\ApiFilter;
  20. use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
  21. #[ORM\Entity(repositoryClassParametroRepository::class)]
  22. #[ApiResource(
  23.     operations: [
  24.         new GetCollection(),
  25.         new Post(validationContext: ['groups' => ['Default''parametro:create']], denormalizationContext: ['groups' => ['parametro:create']], processorParametroStateProcessor::class),
  26.         new Get(),
  27.         new Put(denormalizationContext: ['groups' => ['parametro:update']]),
  28.         new Patch(denormalizationContext: ['groups' => ['parametro:update']]),
  29.         new Delete(),
  30.     ],
  31.     normalizationContext: ['groups' => ['parametro:read''uuid']],
  32. )]
  33. #[ApiFilter(
  34.     SearchFilter::class,
  35.     properties: [
  36.         'nombre' => 'exact',
  37.         'codigo' => 'exact'
  38.     ]
  39. )]
  40. #[ApiFilter(
  41.     OrderFilter::class,
  42.     properties: [
  43.         'nombre',
  44.         'codigo'
  45.     ]
  46. )]
  47. class Parametro
  48. {
  49.     use TimestampableTrait;
  50.     use BlameableTrait;
  51.     use UuidTrait;
  52.     #[Groups(['parametro:read''parametro:create''parametro:update''productoParametros:read'])]
  53.     #[ORM\Column(length255nullabletrue)]
  54.     private ?string $codigo null;
  55.     #[Groups(['parametro:read''parametro:create''parametro:update''productoParametros:read'])]
  56.     #[ORM\Column(length255nullabletrue)]
  57.     private ?string $nombre null;
  58.     #[Groups(['parametro:read'])]
  59.     #[ORM\ManyToOne]
  60.     #[ORM\JoinColumn(nullablefalse)]
  61.     private ?Empresa $empresa null;
  62.     public function __construct()
  63.     {
  64.         $this->uuid Uuid::uuid4()->toString();
  65.     }
  66.     public function getCodigo(): ?string
  67.     {
  68.         return $this->codigo;
  69.     }
  70.     public function setCodigo(?string $codigo): self
  71.     {
  72.         $this->codigo $codigo;
  73.         return $this;
  74.     }
  75.     public function getNombre(): ?string
  76.     {
  77.         return $this->nombre;
  78.     }
  79.     public function setNombre(?string $nombre): self
  80.     {
  81.         $this->nombre $nombre;
  82.         return $this;
  83.     }
  84.     public function getEmpresa(): ?Empresa
  85.     {
  86.         return $this->empresa;
  87.     }
  88.     public function setEmpresa(?Empresa $empresa): self
  89.     {
  90.         $this->empresa $empresa;
  91.         return $this;
  92.     }
  93. }