<?phpnamespace App\Entity;use App\Repository\PaymentRepository;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: PaymentRepository::class)]class Payment{ public const STATUS_PAID = 'pagado'; public const STATUS_NOT_PAID = 'no pagado'; public const STATUS_CANCELLED = 'cancelado'; #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column(type: 'integer')] private ?int $id = null; #[ORM\Column(type: 'float')] private float $amount; #[ORM\Column(type: 'datetime')] private \DateTimeInterface $paidAt; #[ORM\Column(type: 'string', length: 20)] private string $status; #[ORM\OneToOne(targetEntity: Order::class, inversedBy: 'payment', cascade: ['persist', 'remove'])] #[ORM\JoinColumn(nullable: false)] private Order $order; // Getters y setters public function getId(): ?int { return $this->id; } public function getAmount(): ?float { return $this->amount; } public function setAmount(float $amount): self { $this->amount = $amount; return $this; } public function getPaidAt(): ?\DateTimeInterface { return $this->paidAt; } public function setPaidAt(\DateTimeInterface $paidAt): self { $this->paidAt = $paidAt; return $this; } public function getStatus(): ?string { return $this->status; } public function setStatus(string $status): self { $allowed = [ self::STATUS_PAID, self::STATUS_NOT_PAID, self::STATUS_CANCELLED ]; if (!in_array($status, $allowed, true)) { throw new \InvalidArgumentException("Estado de pago no vĂ¡lido."); } $this->status = $status; return $this; } public function getOrder(): ?Order { return $this->order; } public function setOrder(Order $order): self { $this->order = $order; return $this; } public function getOrderName(): ?string { if ($this->getOrder()) { return $this->getOrder()->getName() . ' ' . $this->getOrder()->getSurename(); } return null; } public function getOrderEmail(): ?string { return $this->getOrder() ? $this->getOrder()->getEmail() : null; } public function getOrderId() { return $this->getOrder() ? $this->getOrder()->getId() : null; }}