<?phpnamespace 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(length: 255, nullable: true)] private ?string $designation = 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 getDesignation(): ?string { return $this->designation; } public function setDesignation(?string $designation): static { $this->designation = $designation; 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; }}