Files
shipping-portal/app/Transformers/DeliveryPackingListTransformer.php
2023-04-24 21:08:29 +03:00

61 lines
1.3 KiB
PHP

<?php
namespace App\Transformers;
use App\Models\PackingList;
use League\Fractal\Resource\Item;
use League\Fractal\TransformerAbstract;
class DeliveryPackingListTransformer extends TransformerAbstract
{
/**
* List of resources to automatically include
*
* @var array
*/
protected $defaultIncludes = [
'transport'
];
/**
* List of resources possible to include
*
* @var array
*/
protected $availableIncludes = [
//
];
/**
* A Fractal transformer.
*
* @return array
*/
public function transform(PackingList $list): array
{
$package = $list->packages()->first();
return [
'id' => $list->id,
'claimant_id' => $list->claimant_id,
'reference' => $list->reference,
'status' => $list->status,
'type' => $package->type,
'description' => $package->description,
'weight' => (float)$package->weight,
'quantity' => (float)$package->quantity,
];
}
/**
* Include Transport
*
* @param PackingList $list
* @return Item
*/
public function includeTransport(PackingList $list): Item
{
return $this->item($list->transports()->first(), new TransportTransformer());
}
}