<?php
namespace App\Entity;
use App\Repository\InvoiceRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: InvoiceRepository::class)]
class Invoice
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private $id;
#[ORM\Column(type: 'string', length: 255)]
private $number;
#[ORM\Column(type: 'float')]
private $amount;
#[ORM\Column(type: 'date')]
private $createdAt;
#[ORM\Column(type: 'string', length: 255)]
private $stripeInvoiceId;
#[ORM\ManyToOne(targetEntity: User::class, inversedBy: 'invoices')]
private $pro;
#[ORM\Column(type: 'string', length: 255)]
private $status;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $period;
#[ORM\ManyToOne(targetEntity: Offer::class, inversedBy: 'invoices')]
private $offer;
#[ORM\ManyToOne(inversedBy: 'invoices')]
private ?Subscription $subscription = null;
#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]
private ?\DateTimeInterface $start = null;
#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]
private ?\DateTimeInterface $end = null;
#[ORM\Column(nullable: true)]
private ?float $tva = null;
public function getId(): ?int
{
return $this->id;
}
public function getNumber(): ?string
{
return $this->number;
}
public function setNumber(string $number): self
{
$this->number = $number;
return $this;
}
public function getAmount(): ?float
{
return $this->amount;
}
public function setAmount(float $amount): self
{
$this->amount = $amount;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getStripeInvoiceId(): ?string
{
return $this->stripeInvoiceId;
}
public function setStripeInvoiceId(string $stripeInvoiceId): self
{
$this->stripeInvoiceId = $stripeInvoiceId;
return $this;
}
public function getPro(): ?User
{
return $this->pro;
}
public function setPro(?User $pro): self
{
$this->pro = $pro;
return $this;
}
public function getStatus(): ?string
{
return $this->status;
}
public function setStatus(string $status): self
{
$this->status = $status;
return $this;
}
public function getPeriod(): ?string
{
return $this->period;
}
public function setPeriod(?string $period): self
{
$this->period = $period;
return $this;
}
public function getOffer(): ?Offer
{
return $this->offer;
}
public function setOffer(?Offer $offer): self
{
$this->offer = $offer;
return $this;
}
public function getSubscription(): ?Subscription
{
return $this->subscription;
}
public function setSubscription(?Subscription $subscription): static
{
$this->subscription = $subscription;
return $this;
}
public function getStart(): ?\DateTimeInterface
{
return $this->start;
}
public function setStart(?\DateTimeInterface $start): static
{
$this->start = $start;
return $this;
}
public function getEnd(): ?\DateTimeInterface
{
return $this->end;
}
public function setEnd(?\DateTimeInterface $end): static
{
$this->end = $end;
return $this;
}
public function getTva(): ?float
{
return $this->tva;
}
public function setTva(?float $tva): static
{
$this->tva = $tva;
return $this;
}
}