Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
TeamTaskSearchDTO
0.00% covered (danger)
0.00%
0 / 19
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 / 7
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Domain\Team\DTOs;
4
5use Domain\Shared\Interfaces\DataTransferObjectInterface;
6use Domain\Shared\Traits\DateRangeDTOTrait;
7use Illuminate\Foundation\Http\FormRequest;
8
9readonly final class TeamTaskSearchDTO implements DataTransferObjectInterface
10{
11    use DateRangeDTOTrait;
12
13    public ?array $startDate;
14    public ?array $endDate;
15    public ?array $createdAt;
16    public ?array $prvFat;
17
18    public array $status;
19
20    public function __construct(array $args)
21    {
22        $this->status = $args['status'];
23        $this->startDate = $args['start_date'] ?? null;
24        $this->endDate = $args['end_date'] ?? null;
25        $this->createdAt = $args['created_at'] ?? null;
26        $this->prvFat = $args['prvfat'] ?? null;
27    }
28
29    public function toArray(): array
30    {
31        return [
32            'status' => $this->status,
33            'start_date' => $this->startDate,
34            'end_date' => $this->endDate,
35            'created_at' => $this->createdAt,
36            'prvfat' => $this->prvFat,
37        ];
38    }
39
40    public static function fromRequest(FormRequest $request): TeamTaskSearchDTO
41    {
42        return new self([
43            'status' => $request->validated('status'),
44            'start_date' => self::processDate($request->validated('start_date')),
45            'end_date' => self::processDate($request->validated('end_date')),
46            'created_at' => self::processDate($request->validated('created_at')),
47            'prvfat' => self::processDate($request->validated('prvfat')),
48        ]);
49    }
50}