src/Entity/Pais.php line 33

  1. <?php
  2. namespace App\Entity;
  3. use Ramsey\Uuid\Uuid;
  4. use App\Trait\UuidTrait;
  5. use ApiPlatform\Metadata\Get;
  6. use ApiPlatform\Metadata\Put;
  7. use ApiPlatform\Metadata\Post;
  8. use ApiPlatform\Metadata\Patch;
  9. use ApiPlatform\Metadata\Delete;
  10. use Doctrine\ORM\Mapping as ORM;
  11. use App\Repository\PaisRepository;
  12. use ApiPlatform\Metadata\ApiResource;
  13. use Gedmo\Mapping\Annotation as Gedmo;
  14. use ApiPlatform\Metadata\GetCollection;
  15. use Symfony\Component\Serializer\Annotation\Groups;
  16. use Symfony\Component\Validator\Constraints as Assert;
  17. #[ORM\Entity(repositoryClassPaisRepository::class)]
  18. #[ApiResource(
  19.         operations: [
  20.             new Get(),
  21.             new Post(validationContext: ['groups' => ['Default''pais:create']], denormalizationContext: ['groups' => ['pais:create']], uriTemplate'paises'),
  22.             new GetCollection(uriTemplate'paises'),
  23.             new Put(denormalizationContext: ['groups' => ['pais:update']],),
  24.             new Patch(denormalizationContext: ['groups' => ['pais:update']],),
  25.             new Delete(),
  26.         ],
  27.         normalizationContext: ['groups' => ['pais:read''uuid']],
  28.     )
  29. ]
  30. class Pais
  31. {
  32.     use UuidTrait;
  33.     #[Assert\NotNull(groups: ['pais:create'])]
  34.     #[Groups(['pais:read''pais:create''pais:update''user:read''localidad:read''empresa:read'])]
  35.     #[ORM\Column(length255)]
  36.     private ?string $nombre null;
  37.     #[Assert\NotNull(groups: ['pais:create'])]
  38.     #[Groups(['pais:read''pais:create''pais:update''user:read''localidad:read''empresa:read'])]
  39.     #[ORM\Column(length255)]
  40.     #[Gedmo\Slug(fields: ['nombre'])]
  41.     private ?string $codigo null;
  42.     #[Assert\NotNull(groups: ['pais:create'])]
  43.     #[Groups(['pais:read''pais:create''pais:update''user:read''localidad:read''empresa:read'])]
  44.     #[ORM\Column(length2)]
  45.     private ?string $iso2 null;
  46.     #[Assert\NotNull(groups: ['pais:create'])]
  47.     #[Groups(['pais:read''pais:create''pais:update''user:read''localidad:read''empresa:read'])]
  48.     #[ORM\Column(length3)]
  49.     private ?string $iso3 null;
  50.     public function __construct()
  51.     {
  52.         $this->uuid Uuid::uuid4()->toString();
  53.     }
  54.     
  55.     public function getNombre(): ?string
  56.     {
  57.         return $this->nombre;
  58.     }
  59.     public function setNombre(string $nombre): self
  60.     {
  61.         $this->nombre $nombre;
  62.         return $this;
  63.     }
  64.     public function getCodigo(): ?string
  65.     {
  66.         return $this->codigo;
  67.     }
  68.     public function setCodigo(string $codigo): self
  69.     {
  70.         $this->codigo $codigo;
  71.         return $this;
  72.     }
  73.     public function getIso2(): ?string
  74.     {
  75.         return $this->iso2;
  76.     }
  77.     public function setIso2(string $iso2): self
  78.     {
  79.         $this->iso2 $iso2;
  80.         return $this;
  81.     }
  82.     public function getIso3(): ?string
  83.     {
  84.         return $this->iso3;
  85.     }
  86.     public function setIso3(string $iso3): self
  87.     {
  88.         $this->iso3 $iso3;
  89.         return $this;
  90.     }
  91. }