Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
UpdateInvoiceItemDTO
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 3
12
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 toArray
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
 fromRequest
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Domain\Invoice\DTOs;
4
5use App\Models\UnitMeasurement\UnitMeasurement;
6use Domain\Integration\DTOs\IntegrationInvoiceItemDTO;
7use Domain\Shared\Interfaces\DataTransferObjectInterface;
8use Illuminate\Foundation\Http\FormRequest;
9
10readonly final class UpdateInvoiceItemDTO implements DataTransferObjectInterface
11{
12    public UnitMeasurement $unit_measurement;
13    public float $amount;
14    public IntegrationInvoiceItemDTO $integration;
15
16    public function __construct(array $args)
17    {
18        $this->unit_measurement = $args['unit_measurement'];
19        $this->amount           = $args['amount'];
20        $this->integration      = $args['integration'];
21    }
22
23    public function toArray(): array
24    {
25        return [
26            'unit_measurement' => $this->unit_measurement,
27            'amount'           => $this->amount,
28            'integration'      => $this->integration,
29        ];
30    }
31
32    public static function fromRequest(FormRequest $request): UpdateInvoiceItemDTO
33    {
34        return new self([
35            'unit_measurement' => $request->validated('unit_measurement'),
36            'amount'           => $request->validated('amount'),
37            'integration'      => $request->validated('integration'),
38        ]);
39    }
40}