<?php
namespace App\Entity;
use App\Entity\Enum\TransactionStatus;
use App\Repository\TransactionCheckRepository;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: TransactionCheckRepository::class)]
class TransactionCheck extends Transaction
{
#[ORM\ManyToOne(targetEntity: Check::class, cascade: ['persist'], inversedBy: 'transactionChecks')]
private $check;
public function __construct()
{
parent::__construct();
$this->setStatus(TransactionStatus::Waiting);
}
public function getCheck(): ?Check
{
return $this->check;
}
public function setCheck(?Check $check): self
{
$this->check = $check;
return $this;
}
public function cancel(): void
{
if ($check = $this->getCheck()) {
foreach ($check->getTransactionChecks() as $transactionCheck) {
$transactionCheck->setStatus(TransactionStatus::Cancelled);
}
$check->setIsCancelled(true);
}
}
}