<?php
namespace App\Entity\System;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* SubscriptionLine
*
* @ORM\Table(name="subscriptions_lines_history")
*
* @ORM\Entity(repositoryClass="App\Repository\System\SubscriptionLineHistoryRepository")
*/
class SubscriptionLineHistory
{
public const STATUS_CANCEL = 'Cancel';
public const STATUS_ERROR = 'Error';
public const STATUS_INIT_AMOUNT = 'initAmount';
public const STATUS_FREE_PACK = 'freePack';
public const STATUS_NOT_RENEWED_SUBSCRIPTIONS = [
self::STATUS_CANCEL, self::STATUS_ERROR, self::STATUS_INIT_AMOUNT, self::STATUS_INIT_AMOUNT,
];
/**
* @var int
*
* @ORM\Id
*
* @ORM\GeneratedValue(strategy="AUTO")
*
* @ORM\Column(type="integer", name="id_subscription_lines_history")
*/
private $id;
/**
* @var Subscription
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\Subscription", inversedBy="subscriptionLineHistories")
*
* @ORM\JoinColumn(referencedColumnName="id_subscription", name="id_subscription")
*/
private $subscription;
/**
* @var SubscriptionLine
*
* @ORM\ManyToOne(targetEntity="SubscriptionLine")
*
* @ORM\JoinColumn(name="id_subscription_lines", referencedColumnName="id_subscription_lines")
*/
private $subscriptionLine;
/**
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $name;
/**
* @var \DateTime
*
* @ORM\Column(type="datetime", options={"default" : "CURRENT_TIMESTAMP"})
*/
private $dateCreate;
/**
* @var Customer
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\Customer")
*
* @ORM\JoinColumn(referencedColumnName="id_customer", name="id_customer")
*/
private $customer;
/**
* @var bool|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $vies;
/**
* @ORM\Column(type="datetime", nullable=true, options={"default" : "0000-00-00 00:00:00"})
*/
private $dateDue;
/**
* @var float|null
*
* @ORM\Column(type="float", nullable=true)
*/
private $cost;
/**
* @var int|null
*
* @ORM\Column(type="integer", nullable=true)
*/
private $userCreate;
/**
* @var int|null
*
* @ORM\Column(type="integer", nullable=true)
*/
private $userMod;
/**
* @var int|null
*
* @ORM\Column(type="integer", nullable=true)
*/
private $nintentos;
/**
* @var string|null
*
* @ORM\Column(name="id_transaction", type="string", length=50, nullable=true)
*/
private $transaction;
/**
* @var bool|null
*
* @ORM\Column(type="boolean", columnDefinition="tinyint(1)", options={"default":0}, nullable=true)
*/
private $erp;
/**
* @var string|null
*
* @ORM\Column(type="string", length=100, nullable=true)
*/
private $idSubscriptionPaypal;
/**
* @var string|null
*
* @ORM\Column(type="text", nullable=true)
*/
private $information;
/**
* @var array|ArrayCollection<int, SubscriptionCustomerHistory>
*
* @ORM\OneToMany(targetEntity="App\Entity\System\SubscriptionCustomerHistory", mappedBy="subscriptionLineHistory", cascade={"persist"})
*/
private $subscriptionCustomerHistories;
/**
* @ORM\Column(type="boolean", nullable=true, options={"default": 0})
*/
private bool $migrated = false;
/**
* @ORM\Column(type="string", length=64, name="internal_migration_status", nullable=true)
*/
private ?string $internalMigrationStatus;
public function __construct()
{
$this->subscriptionCustomerHistories = new ArrayCollection();
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @return Subscription
*/
public function getSubscription(): Subscription
{
return $this->subscription;
}
/**
* @param Subscription $subscription
*
* @return SubscriptionLineHistory
*/
public function setSubscription(Subscription $subscription): SubscriptionLineHistory
{
$this->subscription = $subscription;
return $this;
}
/**
* @return SubscriptionLine
*/
public function getSubscriptionLine(): SubscriptionLine
{
return $this->subscriptionLine;
}
/**
* @param SubscriptionLine $subscriptionLine
*
* @return SubscriptionLineHistory
*/
public function setSubscriptionLine(SubscriptionLine $subscriptionLine): SubscriptionLineHistory
{
$this->subscriptionLine = $subscriptionLine;
return $this;
}
/**
* @return string|null
*/
public function getName(): ?string
{
return $this->name;
}
/**
* @param string|null $name
*
* @return SubscriptionLineHistory
*/
public function setName(?string $name): SubscriptionLineHistory
{
$this->name = $name;
return $this;
}
/**
* @return \DateTime
*/
public function getDateCreate(): \DateTime
{
return $this->dateCreate;
}
/**
* @param \DateTime $dateCreate
*
* @return SubscriptionLineHistory
*/
public function setDateCreate(\DateTime $dateCreate): SubscriptionLineHistory
{
$this->dateCreate = $dateCreate;
return $this;
}
/**
* @return Customer|null
*/
public function getCustomer(): ?Customer
{
return $this->customer;
}
/**
* @param Customer|null $customer
*
* @return SubscriptionLineHistory
*/
public function setCustomer(?Customer $customer): SubscriptionLineHistory
{
$this->customer = $customer;
return $this;
}
/**
* @return bool|null
*/
public function getVies(): ?bool
{
return $this->vies;
}
/**
* @param bool|null $vies
*
* @return SubscriptionLineHistory
*/
public function setVies(?bool $vies): SubscriptionLineHistory
{
$this->vies = $vies;
return $this;
}
/**
* @return \DateTime
*/
public function getDateDue(): ?\DateTime
{
return $this->dateDue;
}
/**
* @param \DateTime|null $dateDue
*
* @return SubscriptionLineHistory
*/
public function setDateDue(?\DateTime $dateDue): SubscriptionLineHistory
{
$this->dateDue = $dateDue;
return $this;
}
/**
* @return float|null
*/
public function getCost(): ?float
{
return $this->cost;
}
/**
* @param float|null $cost
*
* @return SubscriptionLineHistory
*/
public function setCost(?float $cost): SubscriptionLineHistory
{
$this->cost = $cost;
return $this;
}
/**
* @return int|null
*/
public function getUserCreate(): ?int
{
return $this->userCreate;
}
/**
* @param int|null $userCreate
*
* @return SubscriptionLineHistory
*/
public function setUserCreate(?int $userCreate): SubscriptionLineHistory
{
$this->userCreate = $userCreate;
return $this;
}
/**
* @return int|null
*/
public function getUserMod(): ?int
{
return $this->userMod;
}
/**
* @param int|null $userMod
*
* @return SubscriptionLineHistory
*/
public function setUserMod(?int $userMod): SubscriptionLineHistory
{
$this->userMod = $userMod;
return $this;
}
public function getNintentos(): ?int
{
return $this->nintentos;
}
/**
* @param int|null $nintentos
*
* @return SubscriptionLineHistory
*/
public function setNintentos(?int $nintentos): SubscriptionLineHistory
{
$this->nintentos = $nintentos;
return $this;
}
/**
* @return string|null
*/
public function getTransaction(): ?string
{
return $this->transaction;
}
/**
* @param string|null $transaction
*
* @return SubscriptionLineHistory
*/
public function setTransaction(?string $transaction): SubscriptionLineHistory
{
$this->transaction = $transaction;
return $this;
}
/**
* @return bool|null
*/
public function getErp(): ?bool
{
return $this->erp;
}
/**
* @param bool|null $erp
*
* @return SubscriptionLineHistory
*/
public function setErp(?bool $erp): SubscriptionLineHistory
{
$this->erp = $erp;
return $this;
}
/**
* @return string|null
*/
public function getIdSubscriptionPaypal(): ?string
{
return $this->idSubscriptionPaypal;
}
/**
* @param string|null $idSubscriptionPaypal
*
* @return SubscriptionLineHistory
*/
public function setIdSubscriptionPaypal(?string $idSubscriptionPaypal): SubscriptionLineHistory
{
$this->idSubscriptionPaypal = $idSubscriptionPaypal;
return $this;
}
/**
* @return string|null
*/
public function getInformation(): ?string
{
return $this->information;
}
/**
* @param string|null $information
*
* @return SubscriptionLineHistory
*/
public function setInformation(?string $information): SubscriptionLineHistory
{
$this->information = $information;
return $this;
}
public function getSubscriptionCustomerHistories(): array
{
return $this->subscriptionCustomerHistories;
}
public function isMigrated(): bool
{
return $this->migrated;
}
public function setMigrated(bool $migrated): SubscriptionLineHistory
{
$this->migrated = $migrated;
return $this;
}
public function getInternalMigrationStatus(): ?string
{
return $this->internalMigrationStatus;
}
public function setInternalMigrationStatus(?string $internalMigrationStatus): SubscriptionLineHistory
{
$this->internalMigrationStatus = $internalMigrationStatus;
return $this;
}
public function setLineToMigrated(): SubscriptionLineHistory
{
$this->migrated = true;
$this->internalMigrationStatus = 'migrated';
return $this;
}
}