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