Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
19 / 19
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
ProductPriorityConfigurationDTO
100.00% covered (success)
100.00%
19 / 19
100.00% covered (success)
100.00%
3 / 3
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
 toArray
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
1 / 1
1
 fromRequest
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace Domain\Product\DTOs;
4
5use Illuminate\Foundation\Http\FormRequest;
6
7use Domain\Shared\Interfaces\DataTransferObjectInterface;
8
9readonly final class ProductPriorityConfigurationDTO implements DataTransferObjectInterface
10{
11    private ?int $product_id;
12    private ?int $family_id;
13    private ?int $origin_id;
14    private ?string $priority_field;
15    private ?string $priority_order;
16
17    public function __construct(array $args)
18    {
19        $this->product_id     = $args['product_id'] ?? null;
20        $this->family_id      = $args['family_id'] ?? null;
21        $this->origin_id      = $args['origin_id'] ?? null;
22        $this->priority_field = $args['priority_field'] ?? null;
23        $this->priority_order = $args['priority_order'] ?? null;
24
25    }
26
27    public function toArray(): array
28    {
29        return [
30            'product_id'     => $this->product_id,
31            'family_id'      => $this->family_id,
32            'origin_id'      => $this->origin_id,
33            'priority_field' => $this->priority_field,
34            'priority_order' => $this->priority_order,
35        ];
36    }
37
38    public static function fromRequest(FormRequest $request): ProductPriorityConfigurationDTO
39    {
40        return new self([
41            'product_id'     => $request->validated('product_id'),
42            'family_id'      => $request->validated('family_id'),
43            'origin_id'      => $request->validated('origin_id'),
44            'priority_field' => $request->validated('priority_field'),
45            'priority_order' => $request->validated('priority_order'),
46        ]);
47    }
48}