<?phpnamespace App\Entity;use App\Entity\Traits\CommonTrait;use App\Repository\PromoPayTransactionRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;/** * @ORM\Entity(repositoryClass=PromoPayTransactionRepository::class) * @ORM\HasLifecycleCallbacks() * @UniqueEntity({"uuid"}) * @ORM\Table(name="promo_pay_transaction") */class PromoPayTransaction{ use CommonTrait; /** * @ORM\ManyToMany(targetEntity=ItemPromotion::class) */ private $promotions; /** * @ORM\ManyToOne(targetEntity=Item::class, inversedBy="promoPayTransactions") * @ORM\JoinColumn(nullable=false) */ private $item; /** * @ORM\Column(type="decimal", precision=10, scale=0) */ private $ammout; /** * @ORM\ManyToOne(targetEntity=User::class, inversedBy="promoPayTransactions") * @ORM\JoinColumn(nullable=false) */ private $buyer; /** * @ORM\Column(type="text", nullable=true) */ private $description; /** * @ORM\Column(type="string", length=255, unique=true) */ private $paymentId; /** * @ORM\Column(type="string", length=255) */ private $status; /** * @ORM\Column(type="text") */ private $paymentUrl; public function __construct() { $this->promotions = new ArrayCollection(); } /** * @return Collection|ItemPromotion[] */ public function getPromotions(): Collection { return $this->promotions; } public function addPromotion(ItemPromotion $promotion): self { if (!$this->promotions->contains($promotion)) { $this->promotions[] = $promotion; } return $this; } public function removePromotion(ItemPromotion $promotion): self { $this->promotions->removeElement($promotion); return $this; } public function getItem(): ?Item { return $this->item; } public function setItem(?Item $item): self { $this->item = $item; return $this; } public function getAmmout(): ?string { return $this->ammout; } public function setAmmout(string $ammout): self { $this->ammout = $ammout; return $this; } public function getBuyer(): ?User { return $this->buyer; } public function setBuyer(?User $buyer): self { $this->buyer = $buyer; return $this; } public function getDescription(): ?string { return $this->description; } public function setDescription(?string $description): self { $this->description = $description; return $this; } public function getPaymentId(): ?string { return $this->paymentId; } public function setPaymentId(string $paymentId): self { $this->paymentId = $paymentId; return $this; } public function getStatus(): ?string { return $this->status; } public function getStatusName() { switch ($this->getStatus()) { case 'NEW': return 'Nowa transakcja'; case 'CONFIRMED': return 'Transakcja potwierdzona'; case 'REJECTED': return 'Transakcja odrzucona'; } return ''; } public function setStatus(string $status): self { $this->status = $status; return $this; } public function getIsValid() { return $this->getStatus() === 'CONFIRMED'; } public function getPaymentUrl(): ?string { return $this->paymentUrl; } public function setPaymentUrl(string $paymentUrl): self { $this->paymentUrl = $paymentUrl; return $this; }}