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

79 lines
1.7 KiB
PHP

<?php
namespace App\Transformers;
use App\Models\PackingList;
use League\Fractal\Resource\Collection;
use League\Fractal\Resource\Item;
use League\Fractal\TransformerAbstract;
class DeliverPackingListTransformer extends TransformerAbstract
{
/**
* List of resources to automatically include
*
* @var array
*/
protected $defaultIncludes = [
'transport',
'packing_list',
'company'
];
/**
* List of resources possible to include
*
* @var array
*/
protected $availableIncludes = [
//
];
/**
* A Fractal transformer.
*
* @param PackingList $list
* @return array
*/
public function transform(PackingList $list): array
{
return [
'id' => $this->$list,
'claimant_id' => $list->claimant_id,
'reference' => $list->reference,
'status' => $list->status,
];
}
/**
* include transport
* @param PackingList $list
* @return Item
*/
public function includeTransport(PackingList $list): Item
{
return $this->item($list->transports()->first(), new TransportTransformer);
}
/**
* add packing list
* @param PackingList $list
* @return Collection
*/
public function includePackingList(PackingList $list): Collection
{
return $this->collection($list->packing_list_owner(), new PackageListTransformer);
}
/**
* add company
* @param PackingList $list
* @return Item
*/
public function includeCompany(PackingList $list): Item
{
return $this->item($list->owner(), new CompanyModuleTransformer);
}
}