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