src/Entity/GrupoEmpresa.php line 32

  1. <?php
  2. namespace App\Entity;
  3. use Ramsey\Uuid\Uuid;
  4. use App\Entity\Empresa;
  5. use App\Trait\UuidTrait;
  6. use ApiPlatform\Metadata\Get;
  7. use ApiPlatform\Metadata\Put;
  8. use ApiPlatform\Metadata\Post;
  9. use ApiPlatform\Metadata\Patch;
  10. use ApiPlatform\Metadata\Delete;
  11. use Doctrine\ORM\Mapping as ORM;
  12. use ApiPlatform\Metadata\ApiResource;
  13. use ApiPlatform\Metadata\GetCollection;
  14. use App\Repository\GrupoEmpresaRepository;
  15. use Doctrine\Common\Collections\Collection;
  16. use Doctrine\Common\Collections\ArrayCollection;
  17. use Symfony\Component\Serializer\Annotation\Groups;
  18. #[ORM\Entity(repositoryClassGrupoEmpresaRepository::class)]
  19. #[ApiResource(
  20.     operations: [
  21.         new Post(validationContext: ['groups' => ['Default''grupoEmpresa:create']], denormalizationContext: ['groups' => ['grupoEmpresa:create']]),
  22.         new Get(),
  23.         new Put(denormalizationContext: ['groups' => ['grupoEmpresa:update']]),
  24.         new Patch(denormalizationContext: ['groups' => ['grupoEmpresa:update']]),
  25.         new Delete(),
  26.     ],
  27.     normalizationContext: ['groups' => ['grupoEmpresa:read''uuid']],
  28. )]
  29. class GrupoEmpresa
  30. {
  31.     use UuidTrait;
  32.     #[Groups(['grupoEmpresa:read''grupoEmpresa:create''grupoEmpresa:update'])]
  33.     #[ORM\Column(length255nullabletrue)]
  34.     private ?string $nombre null;
  35.     #[Groups(['grupoEmpresa:read''grupoEmpresa:create''grupoEmpresa:update'])]
  36.     #[ORM\Column(length255nullabletrue)]
  37.     private ?string $codigo null;
  38.     #[Groups(['grupoEmpresa:read''grupoEmpresa:create''grupoEmpresa:update'])]
  39.     #[ORM\OneToMany(mappedBy'grupoEmpresa'targetEntityEmpresa::class, orphanRemovaltrue)]
  40.     private Collection $empresas;
  41.     #[Groups(['grupoEmpresa:read''grupoEmpresa:create''grupoEmpresa:update'])]
  42.     #[ORM\Column(nullabletrue)]
  43.     private ?bool $isActivo null;
  44.     public function __construct()
  45.     {
  46.         $this->empresas = new ArrayCollection();
  47.         $this->uuid Uuid::uuid4()->toString();
  48.     }
  49.     public function getNombre(): ?string
  50.     {
  51.         return $this->nombre;
  52.     }
  53.     public function setNombre(?string $nombre): self
  54.     {
  55.         $this->nombre $nombre;
  56.         return $this;
  57.     }
  58.     public function getCodigo(): ?string
  59.     {
  60.         return $this->codigo;
  61.     }
  62.     public function setCodigo(?string $codigo): self
  63.     {
  64.         $this->codigo $codigo;
  65.         return $this;
  66.     }
  67.     /**
  68.      * @return Collection<int, Empresa>
  69.      */
  70.     public function getEmpresas(): Collection
  71.     {
  72.         return $this->empresas;
  73.     }
  74.     public function addEmpresa(Empresa $empresa): self
  75.     {
  76.         if (!$this->empresas->contains($empresa)) {
  77.             $this->empresas->add($empresa);
  78.             $empresa->setGrupoEmpresa($this);
  79.         }
  80.         return $this;
  81.     }
  82.     public function removeEmpresa(Empresa $empresa): self
  83.     {
  84.         if ($this->empresas->removeElement($empresa)) {
  85.             // set the owning side to null (unless already changed)
  86.             if ($empresa->getGrupoEmpresa() === $this) {
  87.                 $empresa->setGrupoEmpresa(null);
  88.             }
  89.         }
  90.         return $this;
  91.     }
  92.     public function isIsActivo(): ?bool
  93.     {
  94.         return $this->isActivo;
  95.     }
  96.     public function setIsActivo(?bool $isActivo): self
  97.     {
  98.         $this->isActivo $isActivo;
  99.         return $this;
  100.     }
  101. }