| 12345678910111213141516171819202122232425262728293031323334353637 | 
							- <?php
 - 
 - namespace App\DTO;
 - 
 - use App\Models\Accounting\DocumentLineItem;
 - use App\Utilities\Currency\CurrencyConverter;
 - 
 - readonly class LineItemDTO
 - {
 -     public function __construct(
 -         public string $name,
 -         public string $description,
 -         public int $quantity,
 -         public string $unitPrice,
 -         public string $subtotal,
 -     ) {}
 - 
 -     public static function fromModel(DocumentLineItem $lineItem): self
 -     {
 -         return new self(
 -             name: $lineItem->offering->name ?? '',
 -             description: $lineItem->description ?? '',
 -             quantity: $lineItem->quantity,
 -             unitPrice: self::formatToMoney($lineItem->unit_price, $lineItem->documentable->currency_code),
 -             subtotal: self::formatToMoney($lineItem->subtotal, $lineItem->documentable->currency_code),
 -         );
 -     }
 - 
 -     protected static function formatToMoney(float | string | int $value, ?string $currencyCode): string
 -     {
 -         if (is_int($value)) {
 -             return CurrencyConverter::formatCentsToMoney($value, $currencyCode);
 -         }
 - 
 -         return CurrencyConverter::formatToMoney($value, $currencyCode);
 -     }
 - }
 
 
  |