'Data Klasifikasi', 'filter' => $request->input('filter', null), 'new_data' => session()->get('new_data', null), ]); } public function create() { return view('dashboard.classifications.create', [ 'title' => 'Buat Klasifikasi Baru', ]); } public function store(ClassificationRequest $request) { $validatedData = $request->validated(); try { $createdClassification = Classification::create($validatedData); } catch (\Exception $e) { Log::error('Classifications (store): '.$e); return redirect()->back()->with('failed-status', 'Gagal membuat klasifikasi baru.'); } return redirect()->route('dashboard.classifications.index')->with('success-status', 'Berhasil membuat klasifikasi baru.') ->with('new_data', encrypt_id($createdClassification->id)); } public function edit($id) { $classification = Classification::findOrFail(decrypt_id($id)); return view('dashboard.classifications.edit', [ 'title' => 'Ubah Klasifikasi', 'classification' => $classification, ]); } public function update(ClassificationRequest $request, $id) { $validatedData = $request->validated(); try { $classification = Classification::findOrFail(decrypt_id($id)); $classification->update($validatedData); } catch (\Exception $e) { Log::error('Classifications (update): '.$e); return redirect()->back()->with('failed-status', 'Gagal mengubah klasifikasi.'); } return redirect()->route('dashboard.classifications.show', ['id' => encrypt_id($classification->id)])->with('success-status', 'Berhasil mengubah klasifikasi.'); } public function show($id) { $classification = Classification::withTrashed()->findOrFail(decrypt_id($id)); return view('dashboard.classifications.show', [ 'title' => 'Detail Klasifikasi', 'classification' => $classification, ]); } public function destroy($id) { try { $classification = Classification::findOrFail(decrypt_id($id)); $classification->delete(); } catch (\Exception $e) { Log::error('Classifications (destroy): '.$e); return response()->json([ 'status' => 'failed', 'message' => 'Gagal menghapus klasifikasi.', ], 500); } return response()->json([ 'status' => 'success', 'message' => 'Berhasil menghapus klasifikasi.', 'id' => encrypt_id($classification->id), ]); } public function restore($id) { try { $classification = Classification::withTrashed()->findOrFail(decrypt_id($id)); if (! $classification->trashed()) { return response()->json([ 'status' => 'failed', 'message' => 'Klasifikasi belum dihapus.', ], 400); } $classification->restore(); } catch (\Exception $e) { Log::error('Classifications (restore): '.$e); return response()->json([ 'status' => 'failed', 'message' => 'Gagal mengembalikan klasifikasi.', ], 500); } return response()->json([ 'status' => 'success', 'message' => 'Klasifikasi berhasil dikembalikan.', ]); } }