src/Entity/Direccion.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 ApiPlatform\Metadata\ApiResource;
  12. use ApiPlatform\Metadata\GetCollection;
  13. use App\Repository\DireccionRepository;
  14. use Symfony\Component\Serializer\Annotation\Groups;
  15. use Symfony\Component\Validator\Constraints as Assert;
  16. #[ORM\Entity(repositoryClassDireccionRepository::class)]
  17. #[
  18.     ApiResource(
  19.         operations: [
  20.             new Get(uriTemplate'direcciones/{uuid}'),
  21.             new Post(validationContext: ['groups' => ['Default''direccion:create']], denormalizationContext: ['groups' => ['direccion:create']], uriTemplate'direcciones'),
  22.             new GetCollection(uriTemplate'direcciones'),
  23.             new Put(denormalizationContext: ['groups' => ['direccion:update']], uriTemplate'direcciones/{uuid}'),
  24.             new Patch(denormalizationContext: ['groups' => ['direccion:update']], uriTemplate'direcciones/{uuid}'),
  25.             new Delete(uriTemplate'direcciones/{uuid}'),
  26.         ],
  27.         normalizationContext: ['groups' => ['direccion:read''uuid']],
  28.     )
  29. ]
  30. class Direccion
  31. {
  32.     use UuidTrait;
  33.     #[Assert\NotNull(groups: ['direccion:create'])]
  34.     #[Groups([
  35.         'direccion:read''direccion:create''direccion:update',
  36.         'user:read''user:create''user:update',
  37.         'empresa:read''empresa:create''empresa:update'
  38.     ])]
  39.     #[ORM\Column(length255)]
  40.     private ?string $direccion null;
  41.     #[Assert\NotNull(groups: ['direccion:create'])]
  42.     #[Groups([
  43.         'direccion:read''direccion:create''direccion:update',
  44.         'user:read''user:create''user:update',
  45.         'empresa:read''empresa:create''empresa:update'
  46.     ])]
  47.     #[ORM\Column(length255)]
  48.     private ?string $codigoPostal null;
  49.     #[Assert\NotNull(groups: ['direccion:create'])]
  50.     #[Groups([
  51.         'direccion:read''direccion:create''direccion:update',
  52.         'user:read''user:create''user:update',
  53.         'empresa:read''empresa:create''empresa:update'
  54.     ])]
  55.     #[ORM\Column]
  56.     private ?bool $isPrincipal null;
  57.     #[Assert\NotNull(groups: ['direccion:create'])]
  58.     #[Groups([
  59.         'direccion:read''direccion:create''direccion:update',
  60.         'user:read''user:create''user:update',
  61.         'empresa:read''empresa:create''empresa:update'
  62.     ])]
  63.     #[ORM\Column(length255)]
  64.     private ?string $nombre null;
  65.     #[Groups([
  66.         'direccion:read''direccion:create''direccion:update',
  67.         'user:read''user:create''user:update',
  68.         'empresa:read''empresa:create''empresa:update'
  69.     ])]
  70.     #[ORM\Column(length255nullabletrue)]
  71.     private ?string $descripcion null;
  72.     #[Groups(['direccion:read''direccion:create''direccion:update'])]
  73.     #[ORM\ManyToOne(inversedBy'direcciones')]
  74.     private ?User $user null;
  75.     #[Groups(['direccion:read''direccion:create''direccion:update'])]
  76.     #[ORM\ManyToOne(inversedBy'direcciones')]
  77.     private ?Empresa $empresa null;
  78.     #[Assert\NotNull(groups: ['direccion:create'])]
  79.     #[Groups([
  80.         'direccion:read''direccion:create''direccion:update',
  81.         'user:read''user:create''user:update',
  82.         'empresa:read''empresa:create''empresa:update'
  83.     ])]
  84.     #[ORM\Column(length255nullabletrue)]
  85.     private ?string $tipo null;
  86.     #[Groups([
  87.         'direccion:read''direccion:create''direccion:update',
  88.         'user:read''user:create''user:update',
  89.         'empresa:read''empresa:create''empresa:update'
  90.     ])]
  91.     #[ORM\Column(length255nullabletrue)]
  92.     private ?string $codigo null;
  93.     #[Groups([
  94.         'direccion:read''direccion:create''direccion:update',
  95.         'user:read''user:create''user:update',
  96.         'empresa:read''empresa:create''empresa:update'
  97.     ])]
  98.     #[ORM\Column(length255nullabletrue)]
  99.     private ?string $email null;
  100.     #[Groups([
  101.         'direccion:read''direccion:create''direccion:update',
  102.         'user:read''user:create''user:update',
  103.         'empresa:read''empresa:create''empresa:update'
  104.     ])]
  105.     #[ORM\Column(length255nullabletrue)]
  106.     private ?string $telefono null;
  107.     #[Groups([
  108.         'direccion:read''direccion:create''direccion:update',
  109.         'user:read''user:create''user:update',
  110.         'empresa:read''empresa:create''empresa:update'
  111.     ])]
  112.     #[ORM\Column(length255nullabletrue)]
  113.     private ?string $telefono2 null;
  114.     #[Assert\NotNull(groups: ['direccion:create'])]
  115.     #[Groups([
  116.         'direccion:read''direccion:create''direccion:update',
  117.         'user:read''user:create''user:update',
  118.         'empresa:read''empresa:create''empresa:update'
  119.     ])]
  120.     #[ORM\ManyToOne(targetEntityLocalidad::class, inversedBy'direcciones')]
  121.     #[ORM\JoinColumn(nullablefalse)]
  122.     private ?Localidad $localidad null;
  123.     public function __construct()
  124.     {
  125.         $this->uuid Uuid::uuid4()->toString();
  126.     }
  127.     public function getDireccion(): ?string
  128.     {
  129.         return $this->direccion;
  130.     }
  131.     public function setDireccion(string $direccion): self
  132.     {
  133.         $this->direccion $direccion;
  134.         return $this;
  135.     }
  136.     public function getCodigoPostal(): ?string
  137.     {
  138.         return $this->codigoPostal;
  139.     }
  140.     public function setCodigoPostal(string $codigoPostal): self
  141.     {
  142.         $this->codigoPostal $codigoPostal;
  143.         return $this;
  144.     }
  145.     public function isIsPrincipal(): ?bool
  146.     {
  147.         return $this->isPrincipal;
  148.     }
  149.     public function setIsPrincipal(bool $isPrincipal): self
  150.     {
  151.         $this->isPrincipal $isPrincipal;
  152.         return $this;
  153.     }
  154.     public function getNombre(): ?string
  155.     {
  156.         return $this->nombre;
  157.     }
  158.     public function setNombre(string $nombre): self
  159.     {
  160.         $this->nombre $nombre;
  161.         return $this;
  162.     }
  163.     public function getDescripcion(): ?string
  164.     {
  165.         return $this->descripcion;
  166.     }
  167.     public function setDescripcion(?string $descripcion): self
  168.     {
  169.         $this->descripcion $descripcion;
  170.         return $this;
  171.     }
  172.     public function getUser(): ?User
  173.     {
  174.         return $this->user;
  175.     }
  176.     public function setUser(?User $user): self
  177.     {
  178.         $this->user $user;
  179.         return $this;
  180.     }
  181.     public function getEmpresa(): ?Empresa
  182.     {
  183.         return $this->empresa;
  184.     }
  185.     public function setEmpresa(?Empresa $empresa): self
  186.     {
  187.         $this->empresa $empresa;
  188.         return $this;
  189.     }
  190.     public function getTipo(): ?string
  191.     {
  192.         return $this->tipo;
  193.     }
  194.     public function setTipo(?string $tipo): self
  195.     {
  196.         $this->tipo $tipo;
  197.         return $this;
  198.     }
  199.     public function getCodigo(): ?string
  200.     {
  201.         return $this->codigo;
  202.     }
  203.     public function setCodigo(?string $codigo): self
  204.     {
  205.         $this->codigo $codigo;
  206.         return $this;
  207.     }
  208.     public function getEmail(): ?string
  209.     {
  210.         return $this->email;
  211.     }
  212.     public function setEmail(?string $email): self
  213.     {
  214.         $this->email $email;
  215.         return $this;
  216.     }
  217.     public function getTelefono(): ?string
  218.     {
  219.         return $this->telefono;
  220.     }
  221.     public function setTelefono(?string $telefono): self
  222.     {
  223.         $this->telefono $telefono;
  224.         return $this;
  225.     }
  226.     public function getTelefono2(): ?string
  227.     {
  228.         return $this->telefono2;
  229.     }
  230.     public function setTelefono2(?string $telefono2): self
  231.     {
  232.         $this->telefono2 $telefono2;
  233.         return $this;
  234.     }
  235.     public function getLocalidad(): ?Localidad
  236.     {
  237.         return $this->localidad;
  238.     }
  239.     public function setLocalidad(?Localidad $localidad): self
  240.     {
  241.         $this->localidad $localidad;
  242.         return $this;
  243.     }
  244. }