Files

53 lines
1.2 KiB
PHP

<?php
namespace App\Transformers;
use App\Models\Document;
use Carbon\Carbon;
use League\Fractal\Resource\Collection;
use League\Fractal\Resource\Item;
use League\Fractal\TransformerAbstract;
class DocumentTransformer extends TransformerAbstract
{
/**
* Default Includes for Document Module
* @var array
*/
protected array $defaultIncludes = [
'files'
];
/**
* Available includes
* @var array
*/
protected array $availableIncludes = [
'owner'
];
public function transform(Document $document): array
{
return [
'id' => $document->id,
'reference' => $document->reference,
'status' => $document->status,
'document_type' => $document->document_type,
'created_at' => Carbon::parse($document->created_at)->format('d-m-Y h:i:s A')
];
}
public function includeFiles(Document $document): Collection
{
$files = $document->files;
return $this->collection($files, new FileTransformer());
}
public function includeOwner(Document $document): Item
{
$owner = $document->owner;
return $this->item($owner, new CompanyTransformer());
}
}