<?php
namespace App\Entity;
use App\Billing\Model\BillableItemInterface;
use App\Repository\ServiceRepository;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: ServiceRepository::class)]
class Service implements BillableItemInterface
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(length: 255)]
private ?string $nom = null;
#[ORM\Column]
private ?float $prixUnitaire = null;
#[ORM\Column]
private ?float $tva = null;
public function getId(): ?int
{
return $this->id;
}
public function getNom(): ?string
{
return $this->nom;
}
public function setNom(string $nom): static
{
$this->nom = $nom;
return $this;
}
public function getPrixUnitaire(): ?float
{
return $this->prixUnitaire;
}
public function setPrixUnitaire(float $prixUnitaire): static
{
$this->prixUnitaire = $prixUnitaire;
return $this;
}
public function getTva(): ?float
{
return $this->tva;
}
public function setTva(float $tva): static
{
$this->tva = $tva;
return $this;
}
public function __toString(): string
{
return $this->nom ?? '';
}
// BillableItemInterface implementation
public function getBillableDescription(): string
{
return $this->nom;
}
public function getBillablePrice(): float
{
return $this->prixUnitaire;
}
public function getBillableVatRate(): float
{
return $this->tva;
}
}