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
PickingOrderSummaryDTO
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 3
30
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
12
 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\PickingOrder\DTOs;
4
5use Carbon\Carbon;
6use Domain\Shared\Interfaces\DataTransferObjectInterface;
7use Illuminate\Foundation\Http\FormRequest;
8
9readonly final class PickingOrderSummaryDTO implements DataTransferObjectInterface
10{
11    public Carbon $start_date;
12    public Carbon $end_date;
13    public ?string $productIntegrationCode;
14
15    public function __construct(array $args)
16    {
17        $this->start_date = $args['start_date'] ? Carbon::parse($args['start_date']) : Carbon::now()->startOfDay();
18        $this->end_date = $args['end_date'] ? Carbon::parse($args['end_date']) : Carbon::now()->endOfDay();
19        $this->productIntegrationCode = $args['product_integration_code'] ?? null;
20    }
21
22    public function toArray(): array
23    {
24        return [
25            'start_date' => $this->start_date->toDateString(),
26            'end_date' => $this->end_date->toDateString(),
27            'product_integration_code' => $this->productIntegrationCode,
28        ];
29    }
30
31    public static function fromRequest(FormRequest $request): PickingOrderSummaryDTO
32    {
33        return new self([
34            'start_date' => $request->validated('start_date'),
35            'end_date' => $request->validated('end_date'),
36            'product_integration_code' => $request->validated('product_integration_code'),
37        ]);
38    }
39}