parseDataTableQuery($request); $employmentStatus = $request->string('employment_status')->toString(); return Inertia::render('admin/hr/employees/Index', [ 'employees' => $this->employeeService->paginateForIndex($tableQuery, $employmentStatus), 'filters' => $this->dataTableFilters($tableQuery, [ 'employment_status' => $employmentStatus, ]), 'employmentStatuses' => EmploymentStatus::selectOptions(), ]); } public function create(): Response { return Inertia::render('admin/hr/employees/Create', [ 'genders' => Gender::selectOptions(), 'employmentStatuses' => EmploymentStatus::selectOptions(), 'roles' => Role::assignableSelectOptions(), ]); } public function store(EmployeeRequest $request): RedirectResponse { $this->employeeService->create($request->validated()); Inertia::flash('success', 'Pegawai berhasil ditambahkan.'); return redirect()->route('admin.hr.employees.index'); } public function edit(User $user): Response { $user->load(['profile', 'employee', 'roles']); return Inertia::render('admin/hr/employees/Edit', [ 'genders' => Gender::selectOptions(), 'employmentStatuses' => EmploymentStatus::selectOptions(), 'roles' => Role::assignableSelectOptions(), 'employee' => $user, ]); } public function update(EmployeeRequest $request, User $user): RedirectResponse { $this->employeeService->update($user, $request->validated()); Inertia::flash('success', 'Data pegawai berhasil diperbarui.'); return redirect()->route('admin.hr.employees.index'); } public function toggleStatus(Request $request, User $user): RedirectResponse { $validated = $request->validate([ 'is_active' => ['required', 'boolean'], ]); $this->employeeService->toggleStatus($user, $validated['is_active']); Inertia::flash('success', 'Status pegawai berhasil diperbarui.'); return back(); } public function resetPassword(User $user): RedirectResponse { $this->employeeService->resetPassword($user); Inertia::flash('success', 'Kata sandi berhasil direset. Pengguna telah logout dari semua sesi.'); return back(); } public function destroy(User $user): RedirectResponse { $this->employeeService->delete($user); Inertia::flash('success', 'Pegawai berhasil dihapus.'); return redirect()->route('admin.hr.employees.index'); } }