43 lines
1.8 KiB
PHP
43 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Resources\Employee;
|
|
|
|
use Illuminate\Http\Resources\Json\ResourceCollection;
|
|
|
|
class LeaveCollection extends ResourceCollection
|
|
{
|
|
public function toArray($request): array
|
|
{
|
|
return [
|
|
'data' => $this->collection->map(function ($leave) {
|
|
return [
|
|
'id' => $leave->id,
|
|
'employee_id' => $leave->employee_id,
|
|
'type' => $leave->type,
|
|
'status' => $leave->status,
|
|
'start_date' => $leave->start_date?->format('Y-m-d'),
|
|
'end_date' => $leave->end_date?->format('Y-m-d'),
|
|
'reason' => $leave->reason,
|
|
'notes' => $leave->notes,
|
|
'approved_by' => $leave->approved_by,
|
|
'approved_at' => $leave->approved_at?->format('Y-m-d H:i:s'),
|
|
'created_at' => $leave->created_at?->format('Y-m-d H:i:s'),
|
|
'updated_at' => $leave->updated_at?->format('Y-m-d H:i:s'),
|
|
'employee' => $leave->employee ? [
|
|
'id' => $leave->employee->id,
|
|
'first_name' => $leave->employee->first_name,
|
|
'last_name' => $leave->employee->last_name,
|
|
'full_name' => $leave->employee->full_name,
|
|
'email' => $leave->employee->email,
|
|
'job_title' => $leave->employee->job_title,
|
|
] : null,
|
|
'approver' => $leave->approver ? [
|
|
'id' => $leave->approver->id,
|
|
'name' => $leave->approver->name,
|
|
'email' => $leave->approver->email,
|
|
] : null,
|
|
];
|
|
}),
|
|
];
|
|
}
|
|
} |