<?php
declare(strict_types=1);
namespace App\Entity\Report;
use App\Repository\Report\StripeSubscriptionRepository;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=StripeSubscriptionRepository::class)
*/
class StripeSubscription
{
/**
* @ORM\Id
*
* @ORM\GeneratedValue
*
* @ORM\Column(type="integer")
*/
private int $id;
/**
* @ORM\Column(type="string", length=255)
*/
private string $externalSubscriptionId;
/**
* @ORM\Column(type="integer")
*/
private int $productId;
/**
* @ORM\Column(type="string", length=255)
*/
private string $externalProductId;
/**
* @ORM\Column(type="integer")
*/
private int $customerId;
/**
* @ORM\Column(type="boolean")
*/
private bool $active;
/**
* @ORM\Column(type="integer")
*/
private ?int $subscriptionLineId;
/**
* @ORM\Column(type="integer")
*/
private ?int $subscriptionCustomerId;
/**
* @ORM\Column(type="datetime")
*/
private \DateTime $dateAdd;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private ?\DateTime $dateUpd = null;
/**
* @ORM\Column(type="datetime")
*/
private \DateTime $dateStart;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private ?\DateTime $dateDue;
/**
* @ORM\Column(type="integer", name="attempts", nullable=true)
*/
private ?int $attempts;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private ?\DateTime $dateCancel = null;
/**
* @var StripeSubscriptionLog[]|Collection<int, StripeSubscriptionLog>
*
* @ORM\OneToMany(targetEntity=StripeSubscriptionLog::class, mappedBy="stripeSubscription")
*/
private $stripeSubscriptionLogs;
public function __construct()
{
$this->dateAdd = new \DateTime();
}
public function getId(): ?int
{
return $this->id;
}
public function getExternalSubscriptionId(): string
{
return $this->externalSubscriptionId;
}
public function setExternalSubscriptionId(string $externalSubscriptionId): StripeSubscription
{
$this->externalSubscriptionId = $externalSubscriptionId;
return $this;
}
public function getProductId(): ?int
{
return $this->productId;
}
public function setProductId(int $productId): StripeSubscription
{
$this->productId = $productId;
return $this;
}
public function getExternalProductId(): ?string
{
return $this->externalProductId;
}
public function setExternalProductId(string $externalProductId): StripeSubscription
{
$this->externalProductId = $externalProductId;
return $this;
}
public function getCustomerId(): ?int
{
return $this->customerId;
}
public function setCustomerId(int $customerId): StripeSubscription
{
$this->customerId = $customerId;
return $this;
}
public function isActive(): ?bool
{
return $this->active;
}
public function setActive(bool $active): StripeSubscription
{
$this->active = $active;
return $this;
}
public function getSubscriptionLineId(): ?int
{
return $this->subscriptionLineId;
}
public function setSubscriptionLineId(?int $subscriptionLineId): StripeSubscription
{
$this->subscriptionLineId = $subscriptionLineId;
return $this;
}
public function getSubscriptionCustomerId(): ?int
{
return $this->subscriptionCustomerId;
}
public function setSubscriptionCustomerId(?int $subscriptionCustomerId): StripeSubscription
{
$this->subscriptionCustomerId = $subscriptionCustomerId;
return $this;
}
public function getDateAdd(): ?\DateTime
{
return $this->dateAdd;
}
public function setDateAdd(\DateTime $dateAdd): StripeSubscription
{
$this->dateAdd = $dateAdd;
return $this;
}
public function getDateUpd(): ?\DateTime
{
return $this->dateUpd;
}
public function setDateUpd(?\DateTime $dateUpd): StripeSubscription
{
$this->dateUpd = $dateUpd;
return $this;
}
public function getDateStart(): ?\DateTime
{
return $this->dateStart;
}
public function setDateStart(\DateTime $dateStart): StripeSubscription
{
$this->dateStart = $dateStart;
return $this;
}
public function getDateDue(): ?\DateTime
{
return $this->dateDue;
}
public function setDateDue(?\DateTime $dateDue): StripeSubscription
{
$this->dateDue = $dateDue;
return $this;
}
public function getAttempts(): ?int
{
return $this->attempts;
}
public function setAttempts(?int $attempts): StripeSubscription
{
$this->attempts = $attempts;
return $this;
}
public function getDateCancel(): ?\DateTime
{
return $this->dateCancel;
}
public function setDateCancel(?\DateTime $dateCancel): StripeSubscription
{
$this->dateCancel = $dateCancel;
return $this;
}
/**
* @return StripeSubscriptionLog[]|Collection<int, StripeSubscriptionLog>
*/
public function getStripeSubscriptionLogs()
{
return $this->stripeSubscriptionLogs;
}
public function addStripeSubscriptionLog(StripeSubscriptionLog $stripeSubscriptionLog): StripeSubscription
{
if (!$this->stripeSubscriptionLogs->contains($stripeSubscriptionLog)) {
$this->stripeSubscriptionLogs[] = $stripeSubscriptionLog;
$stripeSubscriptionLog->setStripeSubscription($this);
}
return $this;
}
public function removeStripeSubscriptionLog(StripeSubscriptionLog $stripeSubscriptionLog): StripeSubscription
{
if ($this->stripeSubscriptionLogs->removeElement($stripeSubscriptionLog)) {
// set the owning side to null (unless already changed)
if ($stripeSubscriptionLog->getStripeSubscription() === $this) {
$stripeSubscriptionLog->setStripeSubscription(null);
}
}
return $this;
}
}