32 lines
1.2 KiB
PHP
32 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace Modules\MembershipApplication\Transformers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Resources\Json\JsonResource;
|
|
|
|
class MembershipApplicationListResource extends JsonResource
|
|
{
|
|
public function toArray(Request $request): array
|
|
{
|
|
return [
|
|
'id' => $this->id,
|
|
'application_number' => $this->application_number,
|
|
'status' => $this->status?->value ?? $this->status,
|
|
'board_result' => $this->board_result ?: null,
|
|
'submitted_at' => $this->submitted_at,
|
|
'has_result_letter' => ($this->result_letter_count ?? 0) > 0,
|
|
'result_letter_document' => $this->when(
|
|
($this->result_letter_count ?? 0) > 0 && $this->relationLoaded('resultLetterDocument') && $this->resultLetterDocument,
|
|
fn () => new MembershipApplicationDocumentResource($this->resultLetterDocument),
|
|
),
|
|
'applicant' => $this->whenLoaded('applicant', fn () => [
|
|
'name' => $this->applicant->name,
|
|
'email' => $this->applicant->email,
|
|
'ic_number' => $this->applicant->ic_number,
|
|
]),
|
|
'created_at' => $this->created_at?->toISOString(),
|
|
];
|
|
}
|
|
}
|