<?php
namespace App\Entity;
use App\Repository\SubscriptionRepository;
use Doctrine\ORM\Mapping as ORM;
use Overblog\GraphQLBundle\Annotation\Field;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Entity(repositoryClass: SubscriptionRepository::class)]
#[ORM\HasLifecycleCallbacks]
class Subscription extends BasicEntity
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
#[Field(name: "id", type: "int")]
private $id;
#[ORM\Column(type: 'datetime')]
#[Field(name: "start_date", type: "string")]
private $startDate;
#[ORM\Column(type: 'datetime')]
#[Field(name: "end_date", type: "string")]
private $endDate;
#[ORM\ManyToOne(targetEntity: Plan::class, fetch: 'EAGER', inversedBy: 'subscriptions')]
#[ORM\JoinColumn(nullable: false)]
#[Field(name: "plan")]
private $plan;
#[ORM\Column(type: 'boolean')]
#[Field(name: "is_actif", type: "boolean")]
private $isActif;
#[ORM\ManyToOne(targetEntity: Organisation::class, fetch: 'EAGER', inversedBy: 'subscriptions')]
#[ORM\JoinColumn(nullable: false)]
#[Field(name: "organisation")]
private $organisation;
public function getId(): ?int
{
return $this->id;
}
public function getStartDate(): ?\DateTimeInterface
{
return $this->startDate;
}
public function setStartDate(\DateTimeInterface $startDate): self
{
$this->startDate = $startDate;
return $this;
}
public function getEndDate(): ?\DateTimeInterface
{
return $this->endDate;
}
public function setEndDate(\DateTimeInterface $endDate): self
{
$this->endDate = $endDate;
return $this;
}
public function getPlan(): ?Plan
{
return $this->plan;
}
public function setPlan(?Plan $plan): self
{
$this->plan = $plan;
return $this;
}
public function getIsActif(): ?bool
{
return $this->isActif;
}
public function setIsActif(bool $isActif): self
{
$this->isActif = $isActif;
return $this;
}
public function getOrganisation(): ?Organisation
{
return $this->organisation;
}
public function setOrganisation(?Organisation $organisation): self
{
$this->organisation = $organisation;
return $this;
}
#[ORM\PrePersist]
public function setCreatedAtValue(): void
{
$date = new \DateTimeImmutable();
$this->setStartDate($date);
}
}