<?php
namespace App\Entity;
use App\Service\Helper\DateTimeHelper;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
use Exception;
/**
* @ORM\Table(name="orders__payments",
* indexes={
* @ORM\Index(name="created_at", columns={"created_at"}),
* })
* @ORM\Entity(repositoryClass="App\Repository\PaymentOrderRepository")
*/
class PaymentOrder
{
const ORDER_PAYMENT_TYPE_CASH = 'cash';
const ORDER_PAYMENT_TYPE_TERMINAL = 'terminal';
const ORDER_PAYMENT_TYPE_SBERBANK_SITE = 'sberbank_site';
const ORDER_PAYMENT_TYPES = [
self::ORDER_PAYMENT_TYPE_CASH => 'наличными',
self::ORDER_PAYMENT_TYPE_TERMINAL => 'через терминал',
self::ORDER_PAYMENT_TYPE_SBERBANK_SITE => 'Сбербанк на сайте',
];
use IdTrait;
/**
* @ORM\Column(name="created_at", type="datetime", nullable=false)
*/
private DateTime $createdAt;
/**
* @ORM\Column(name="type", type="string", nullable=true)
*/
private string $type;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Order", cascade={"all"})
* @ORM\JoinColumn(name="order_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/
private Order $order;
/**
* @ORM\Column(name="amount", type="integer")
*/
private int $amount;
/**
* @throws Exception
*/
public function __construct(
Order $order,
int $amount,
string $type
)
{
$this->createdAt = DateTimeHelper::getNowDateTime();
$this->order = $order;
$this->amount = $amount;
$this->type = $type;
}
public function getOrder(): Order
{
return $this->order;
}
public function getAmount(): int
{
return $this->amount;
}
public function getType(): string
{
return $this->type;
}
public function getCreatedAt(): DateTime
{
return $this->createdAt;
}
}