src/Entity/Email.php line 32

  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\EmailRepository;
  12. use ApiPlatform\Metadata\ApiResource;
  13. use ApiPlatform\Metadata\GetCollection;
  14. use Symfony\Component\Serializer\Annotation\Groups;
  15. use Symfony\Component\Validator\Constraints as Assert;
  16. #[ORM\Entity(repositoryClassEmailRepository::class)]
  17. #[ApiResource(
  18.         operations: [
  19.             new Get(),
  20.             new Post(validationContext: ['groups' => ['Default''email:create']], denormalizationContext: ['groups' => ['email:create']]),
  21.             new GetCollection(),
  22.             new Put(denormalizationContext: ['groups' => ['email:update']], ),
  23.             new Patch(denormalizationContext: ['groups' => ['email:update']], ),
  24.             new Delete(),
  25.         ],
  26.         normalizationContext: ['groups' => ['email:read''uuid']],
  27.     )
  28. ]
  29. class Email
  30. {
  31.     use UuidTrait;
  32.     #[Assert\NotBlank(groups: ['email:create'])]
  33.     #[Groups([
  34.         'email:read''email:create''email:update',
  35.         'user:read''user:create''user:update',
  36.         'empresa:read''empresa:create''empresa:update'
  37.     ])]
  38.     #[ORM\Column(length255)]
  39.     private ?string $direccion null;
  40.     #[ORM\ManyToOne(inversedBy'emails')]
  41.     private ?User $user null;
  42.     #[Groups([
  43.         'email:read''email:create''email:update',
  44.         'user:read''user:create''user:update',
  45.         'empresa:read''empresa:create''empresa:update'
  46.     ])]
  47.     #[ORM\Column]
  48.     private ?bool $isPrincipal null;
  49.     #[ORM\ManyToOne(inversedBy'emails')]
  50.     private ?Empresa $empresa null;
  51.     public function __construct()
  52.     {
  53.         $this->uuid Uuid::uuid4()->toString();
  54.     }
  55.     
  56.     public function getDireccion(): ?string
  57.     {
  58.         return $this->direccion;
  59.     }
  60.     public function setDireccion(string $direccion): self
  61.     {
  62.         $this->direccion $direccion;
  63.         return $this;
  64.     }
  65.     public function getUser(): ?User
  66.     {
  67.         return $this->user;
  68.     }
  69.     public function setUser(?User $user): self
  70.     {
  71.         $this->user $user;
  72.         return $this;
  73.     }
  74.     public function isIsPrincipal(): ?bool
  75.     {
  76.         return $this->isPrincipal;
  77.     }
  78.     public function setIsPrincipal(bool $isPrincipal): self
  79.     {
  80.         $this->isPrincipal $isPrincipal;
  81.         return $this;
  82.     }
  83.     public function getEmpresa(): ?Empresa
  84.     {
  85.         return $this->empresa;
  86.     }
  87.     public function setEmpresa(?Empresa $empresa): self
  88.     {
  89.         $this->empresa $empresa;
  90.         return $this;
  91.     }
  92. }