<?php
namespace App\Entity\System;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="subscription_customer_history")
*
* @ORM\Entity(repositoryClass="App\Repository\System\SubscriptionCustomerHistoryRepository")
*/
class SubscriptionCustomerHistory
{
public const PAYMENT_FAILED_DETAILS_REASON = 'payment_failed';
/**
* @var int
*
* @ORM\Id
*
* @ORM\GeneratedValue(strategy="AUTO")
*
* @ORM\Column(type="integer", name="id")
*/
private $id;
/**
* @var SubscriptionCustomer
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\SubscriptionCustomer", cascade={"persist"})
*/
private SubscriptionCustomer $subscriptionCustomer;
/**
* @var OrderDetail
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\OrderDetail")
*
* @ORM\JoinColumn(referencedColumnName="id_order_detail", name="id_order_detail")
*/
private $orderDetail;
/**
* @var \DateTime
*
* @ORM\Column(name="date_add", type="datetime")
*/
private $dateAdd;
/**
* @var SubscriptionCustomerHistoryType
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\SubscriptionCustomerHistoryType")
*/
private $subscriptionCustomerHistoryType;
/**
* @var Employee|null
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\Employee")
*
* @ORM\JoinColumn(referencedColumnName="id_employee", name="id_employee")
*/
private $employee;
/**
* @var SubscriptionCustomer|null
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\SubscriptionCustomer")
*/
private $subscriptionCustomerMigration;
/**
* @var \DateTime
*
* @ORM\Column(name="date_due", type="datetime", nullable=true)
*/
private $dateDue;
/**
* @var string|null
*
* @ORM\Column(type="string", length=512, name="status_info", nullable=true)
*/
private $statusInfo;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\System\SubscriptionLineHistory", inversedBy="subscriptionCustomerHistories")
*
* @ORM\JoinColumn(referencedColumnName="id_subscription_lines_history", name="subscription_line_history_id")
*/
private SubscriptionLineHistory $subscriptionLineHistory;
/**
* @ORM\Column(type="string", length=64, name="internal_migration_status", nullable=true)
*/
private ?string $internalMigrationStatus;
public function __construct()
{
$this->dateAdd = new \DateTime();
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param SubscriptionCustomer $subscriptionCustomer
*
* @return SubscriptionCustomerHistory
*/
public function setSubscriptionCustomer(SubscriptionCustomer $subscriptionCustomer): self
{
$this->subscriptionCustomer = $subscriptionCustomer;
return $this;
}
/**
* @return SubscriptionCustomer
*/
public function getSubscriptionCustomer(): SubscriptionCustomer
{
return $this->subscriptionCustomer;
}
/**
* @param OrderDetail|null $orderDetail
*
* @return SubscriptionCustomerHistory
*/
public function setOrderDetail(?OrderDetail $orderDetail): self
{
$this->orderDetail = $orderDetail;
return $this;
}
/**
* @return OrderDetail|null
*/
public function getOrderDetail(): ?OrderDetail
{
return $this->orderDetail;
}
/**
* @return \DateTime
*/
public function getDateAdd(): \DateTime
{
return $this->dateAdd;
}
/**
* @param Employee|null $employee
*
* @return SubscriptionCustomerHistory
*/
public function setEmployee(?Employee $employee): self
{
$this->employee = $employee;
return $this;
}
/**
* @param SubscriptionCustomerHistoryType $subscriptionCustomerHistoryType
*
* @return SubscriptionCustomerHistory
*/
public function setSubscriptionCustomerHistoryType(SubscriptionCustomerHistoryType $subscriptionCustomerHistoryType): self
{
$this->subscriptionCustomerHistoryType = $subscriptionCustomerHistoryType;
return $this;
}
/**
* @param SubscriptionCustomer|null $subscriptionCustomerMigration
*
* @return SubscriptionCustomerHistory
*/
public function setSubscriptionCustomerMigration(?SubscriptionCustomer $subscriptionCustomerMigration): self
{
$this->subscriptionCustomerMigration = $subscriptionCustomerMigration;
return $this;
}
/**
* @param \DateTime|null $dateDue
*
* @return SubscriptionCustomerHistory
*/
public function setDateDue(?\DateTime $dateDue): self
{
$this->dateDue = $dateDue;
return $this;
}
/**
* @param string|null $statusInfo
*
* @return SubscriptionCustomerHistory
*/
public function setStatusInfo(?string $statusInfo): self
{
$this->statusInfo = $statusInfo;
return $this;
}
public function getSubscriptionLineHistory(): SubscriptionLineHistory
{
return $this->subscriptionLineHistory;
}
public function setSubscriptionLineHistory(SubscriptionLineHistory $subscriptionLineHistory): SubscriptionCustomerHistory
{
$this->subscriptionLineHistory = $subscriptionLineHistory;
return $this;
}
public function getInternalMigrationStatus(): ?string
{
return $this->internalMigrationStatus;
}
public function setInternalMigrationStatus(?string $internalMigrationStatus): SubscriptionCustomerHistory
{
$this->internalMigrationStatus = $internalMigrationStatus;
return $this;
}
public function getSubscriptionCustomerHistoryType(): SubscriptionCustomerHistoryType
{
return $this->subscriptionCustomerHistoryType;
}
}