2026-05-11 13:30:24 +03:00

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,
];
}),
];
}
}