Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
63.64% covered (warning)
63.64%
14 / 22
66.67% covered (warning)
66.67%
2 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
RequestLogStoreDTO
63.64% covered (warning)
63.64%
14 / 22
66.67% covered (warning)
66.67%
2 / 3
3.43
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
1
 toArray
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
1
 fromRequest
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Domain\Request\DTOs;
4
5use Illuminate\Foundation\Http\FormRequest;
6
7use App\Models\Request\Request;
8use App\Models\StockIO\StockIO;
9use App\Models\User;
10
11use Domain\Request\Enums\RequestLogOperationEnum;
12use Domain\Shared\Interfaces\DataTransferObjectInterface;
13
14readonly final class RequestLogStoreDTO implements DataTransferObjectInterface
15{
16    public ?Request $request;
17    public ?StockIO $stockIO;
18    public RequestLogOperationEnum $operation;
19    public User $user;
20    public string $detail;
21    public string $observation;
22
23    public function __construct(array $args)
24    {
25        $this->request     = $args['request'] ?? null;
26        $this->stockIO     = $args['stockIO'] ?? null;
27        $this->operation   = $args['operation'];
28        $this->user        = $args['user'];
29        $this->detail      = $args['detail'];
30        $this->observation = $args['observation'];
31    }
32
33    public function toArray(): array
34    {
35        return [
36            'request'     => $this->request,
37            'stockIO'     => $this->stockIO,
38            'operation'   => $this->operation->value,
39            'user'        => $this->user,
40            'detail'      => $this->detail,
41            'observation' => $this->observation,
42        ];
43    }
44
45    public static function fromRequest(FormRequest $request): RequestLogStoreDTO
46    {
47        return new self([
48            'request'     => $request->validated('request'),
49            'stockIO'     => $request->validated('stockIO'),
50            'operation'   => RequestLogOperationEnum::tryFrom($request->validated('suppliers')),
51            'user'        => $request->validated('user'),
52            'detail'      => $request->validated('detail'),
53            'observation' => $request->validated('observation'),
54        ]);
55    }
56}