src/Entity/Tenant/Module.php line 14
<?php
namespace App\Entity\Tenant;
use ApiPlatform\Metadata\ApiProperty;
use ApiPlatform\Metadata\ApiResource;
use App\Repository\Tenant\ModuleRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: ModuleRepository::class)]
#[ApiResource]
class Module
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
#[ApiProperty(description: "visible:list; order:1;")]
private ?int $id = null;
#[ORM\Column]
#[ApiProperty(description: "visible:list; order:2;")]
private ?\DateTimeImmutable $createdAt = null;
#[ORM\Column(length: 255)]
#[ApiProperty(description: "visible:list,form; order:3;")]
private ?string $name = null;
#[ORM\Column(length: 255)]
#[ApiProperty(description: "visible:list,form; order:4;")]
private ?string $description = null;
#[ORM\Column]
#[ApiProperty(description: "visible:list,form; order:5;")]
private ?float $price = null;
#[ORM\ManyToMany(targetEntity: Subscription::class, inversedBy: 'modules')]
#[ApiProperty(description: "visible:form; order:6; manyToMany:true")]
private Collection $subscriptions;
public function __construct()
{
$this->createdAt = new \DateTimeImmutable();
$this->subscriptions = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): static
{
$this->name = $name;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(string $description): static
{
$this->description = $description;
return $this;
}
public function getPrice(): ?float
{
return $this->price;
}
public function setPrice(float $price): static
{
$this->price = $price;
return $this;
}
/**
* @return Collection<int, Subscription>
*/
public function getSubscriptions(): Collection
{
return $this->subscriptions;
}
public function addSubscription(Subscription $subscription): static
{
if (!$this->subscriptions->contains($subscription)) {
$this->subscriptions->add($subscription);
}
return $this;
}
public function removeSubscription(Subscription $subscription): static
{
$this->subscriptions->removeElement($subscription);
return $this;
}
//Metodo para definir las subscripciones con este modulo
public function setSubscriptions(Collection $subscriptions): static
{
$this->subscriptions = $subscriptions;
return $this;
}
public function getCreatedAt(): ?\DateTimeImmutable
{
return $this->createdAt;
}
public function setCreatedAt(\DateTimeImmutable $createdAt): static
{
$this->createdAt = $createdAt;
return $this;
}
}