Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
InvoiceResource
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 toArray
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Domain\Invoice\Resources;
4
5use Domain\Integration\Resources\IntegrationResource;
6use Domain\Supplier\Resources\SupplierResource;
7use Illuminate\Http\Request;
8use Illuminate\Http\Resources\Json\JsonResource;
9
10class InvoiceResource extends JsonResource
11{
12    /**
13     * @property int $id
14     * @property string $key
15     * @property InvoiceStatusEnum $status
16     * @property Supplier $suppliers
17     * @property InvoicePurchaseOrderStatusEnum $purchase_order_status
18     * @property VerificationStatusInvoiceEnum $verification_status
19     * @property InvoiceItem $invoice_items
20     */
21    public function toArray(Request $request): array
22    {
23        return [
24            'id'                    => $this->id,
25            'key'                   => $this->key,
26            'status'                => $this->status->value,
27            'issue_date'            => (string) $this->issue_date,
28            'observation'           => $this->observation,
29            'suppliers'             => SupplierResource::make($this->whenLoaded('supplier')),
30            'purchase_order_status' => $this->purchase_order_status->value,
31            'verification_status'   => $this->verification_status->value,
32            'invoice_items'         => InvoiceItemResource::collection($this->whenLoaded('invoiceItem')),
33            'invoice_activety_log'  => InvoiceActivetyLogResource::collection($this->whenLoaded('invoiceActivetyLog')),
34            'invoice_verification'  => InvoiceVerificationResource::collection($this->whenLoaded('invoiceVerification')),
35            'integration'           => IntegrationResource::make($this->whenLoaded('integration')),
36            'created_at'            => (string) $this->created_at,
37            'updated_at'            => (string) $this->updated_at
38        ];
39    }
40}