src/Entity/Tenant/Module.php line 14

  1. <?php
  2. namespace App\Entity\Tenant;
  3. use ApiPlatform\Metadata\ApiProperty;
  4. use ApiPlatform\Metadata\ApiResource;
  5. use App\Repository\Tenant\ModuleRepository;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Doctrine\Common\Collections\Collection;
  8. use Doctrine\ORM\Mapping as ORM;
  9. #[ORM\Entity(repositoryClassModuleRepository::class)]
  10. #[ApiResource]
  11. class Module
  12. {
  13.     #[ORM\Id]
  14.     #[ORM\GeneratedValue]
  15.     #[ORM\Column]
  16.     #[ApiProperty(description"visible:list; order:1;")]
  17.     private ?int $id null;
  18.     #[ORM\Column]
  19.     #[ApiProperty(description"visible:list; order:2;")]
  20.     private ?\DateTimeImmutable $createdAt null;
  21.     #[ORM\Column(length255)]
  22.     #[ApiProperty(description"visible:list,form; order:3;")]
  23.     private ?string $name null;
  24.     #[ORM\Column(length255)]
  25.     #[ApiProperty(description"visible:list,form; order:4;")]
  26.     private ?string $description null;
  27.     #[ORM\Column]
  28.     #[ApiProperty(description"visible:list,form; order:5;")]
  29.     private ?float $price null;
  30.     #[ORM\ManyToMany(targetEntitySubscription::class, inversedBy'modules')]
  31.     #[ApiProperty(description"visible:form; order:6; manyToMany:true")]
  32.     private Collection $subscriptions;
  33.     public function __construct()
  34.     {
  35.         $this->createdAt = new \DateTimeImmutable();
  36.         $this->subscriptions = new ArrayCollection();
  37.     }
  38.     public function getId(): ?int
  39.     {
  40.         return $this->id;
  41.     }
  42.     public function getName(): ?string
  43.     {
  44.         return $this->name;
  45.     }
  46.     public function setName(string $name): static
  47.     {
  48.         $this->name $name;
  49.         return $this;
  50.     }
  51.     public function getDescription(): ?string
  52.     {
  53.         return $this->description;
  54.     }
  55.     public function setDescription(string $description): static
  56.     {
  57.         $this->description $description;
  58.         return $this;
  59.     }
  60.     public function getPrice(): ?float
  61.     {
  62.         return $this->price;
  63.     }
  64.     public function setPrice(float $price): static
  65.     {
  66.         $this->price $price;
  67.         return $this;
  68.     }
  69.     /**
  70.      * @return Collection<int, Subscription>
  71.      */
  72.     public function getSubscriptions(): Collection
  73.     {
  74.         return $this->subscriptions;
  75.     }
  76.     public function addSubscription(Subscription $subscription): static
  77.     {
  78.         if (!$this->subscriptions->contains($subscription)) {
  79.             $this->subscriptions->add($subscription);
  80.         }
  81.         return $this;
  82.     }
  83.     public function removeSubscription(Subscription $subscription): static
  84.     {
  85.         $this->subscriptions->removeElement($subscription);
  86.         return $this;
  87.     }
  88.     //Metodo para definir las subscripciones con este modulo
  89.     public function setSubscriptions(Collection $subscriptions): static
  90.     {
  91.         $this->subscriptions $subscriptions;
  92.         return $this;
  93.     }
  94.     public function getCreatedAt(): ?\DateTimeImmutable
  95.     {
  96.         return $this->createdAt;
  97.     }
  98.     public function setCreatedAt(\DateTimeImmutable $createdAt): static
  99.     {
  100.         $this->createdAt $createdAt;
  101.         return $this;
  102.     }
  103. }