Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
14.29% covered (danger)
14.29%
2 / 14
25.00% covered (danger)
25.00%
1 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
UnlinkPurchaseOrderItemInvoiceItemDTO
14.29% covered (danger)
14.29%
2 / 14
25.00% covered (danger)
25.00%
1 / 4
14.08
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
2 / 2
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
 fromArray
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Domain\PurchaseOrder\DTOs;
4
5use App\Models\Invoice\InvoiceItem;
6use App\Models\PurchaseOrder\PurchaseOrderItem;
7use Domain\Shared\Interfaces\DataTransferObjectInterface;
8use Illuminate\Foundation\Http\FormRequest;
9
10readonly final class UnlinkPurchaseOrderItemInvoiceItemDTO implements DataTransferObjectInterface
11{
12    public PurchaseOrderItem $purchase_order_item;
13    public InvoiceItem $invoice_item;
14
15    public function __construct(array $args)
16    {
17        $this->purchase_order_item = $args['purchase_order_item'];
18        $this->invoice_item = $args['invoice_item'];
19    }
20
21    public function toArray(): array
22    {
23        return [
24            'purchase_order_item' => $this->purchase_order_item,
25            'invoice_item' => $this->invoice_item,
26        ];
27    }
28
29    public static function fromRequest(FormRequest $request): UnlinkPurchaseOrderItemInvoiceItemDTO
30    {
31        return new self([
32            'purchase_order_item' => PurchaseOrderItem::find($request->validated('purchase_order_item')),
33            'invoice_item' => InvoiceItem::find($request->validated('invoice_item')),
34        ]);
35    }
36
37    public static function fromArray(array $request): UnlinkPurchaseOrderItemInvoiceItemDTO
38    {
39        return new self([
40            'purchase_order_item' => PurchaseOrderItem::find($request['purchase_order_item']),
41            'invoice_item' => InvoiceItem::find($request['invoice_item']),
42        ]);
43    }    
44}