<?php
namespace App\Entity;
use App\Repository\InvoiceRepository;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: InvoiceRepository::class)]
class Invoice
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private ?int $id = null;
#[ORM\Column(type: 'string', length: 50, unique: true)]
private ?string $invoiceNumber = null;
#[ORM\Column(type: 'datetime')]
private ?\DateTimeInterface $issuedAt = null;
#[ORM\Column(type: 'float')]
private ?float $total = null;
#[ORM\OneToOne(targetEntity: Order::class, inversedBy: 'invoice', cascade: ['persist', 'remove'])]
#[ORM\JoinColumn(nullable: false)]
private ?Order $order = null;
// Getters y setters
public function getId(): ?int
{
return $this->id;
}
public function getInvoiceNumber(): ?string
{
return $this->invoiceNumber;
}
public function setInvoiceNumber(string $invoiceNumber): self
{
$this->invoiceNumber = $invoiceNumber;
return $this;
}
public function getIssuedAt(): ?\DateTimeInterface
{
return $this->issuedAt;
}
public function setIssuedAt(\DateTimeInterface $issuedAt): self
{
$this->issuedAt = $issuedAt;
return $this;
}
public function getTotal(): ?float
{
return $this->total;
}
public function setTotal(float $total): self
{
$this->total = $total;
return $this;
}
public function getOrder(): ?Order
{
return $this->order;
}
public function setOrder(Order $order): self
{
$this->order = $order;
return $this;
}
}