<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
class CartItemPurchase extends CartItem implements CartItemShopInterface
{
#[ORM\ManyToOne(targetEntity: ItemVariation::class, inversedBy: 'purchases')]
private $purchaseItem;
public function getPurchaseItem(): ?ItemVariation
{
return $this->purchaseItem;
}
public function setPurchaseItem(?ItemVariation $purchaseItem): self
{
$this->purchaseItem = $purchaseItem;
return $this;
}
public function getVariation(): ItemVariation
{
return $this->purchaseItem;
}
public function getName(): ?string
{
return parent::getName() ?? sprintf('%s (achat)', $this->getPurchaseItem()?->getName());
}
public static function createFromItemVariation(ItemVariation $variation): CartItem
{
return (new self())
->setPrice($variation->getPrice())
->setPurchaseItem($variation);
}
}