config default). $resolved = $service->all(); // Ambil meta dari DB untuk ditampilkan di tabel. $settings = Setting::query() ->orderBy('group') ->orderBy('key') ->get() ->groupBy('group'); return view('settings.index', [ 'settingsByGroup' => $settings, 'resolved' => $resolved, ]); } public function store(SettingRequest $request, SystemSettingService $service): RedirectResponse { $data = $request->validated(); $service->set( $data['key'], $request->castedValue(), $data['type'] ?? null, $data['description'] ?? null, $data['group'] ?? null, $data['is_public'] ?? false ); return redirect()->route('settings.index')->with('success', 'Setting berhasil ditambahkan.'); } public function update(SettingRequest $request, Setting $setting, SystemSettingService $service): RedirectResponse { $data = $request->validated(); $service->set( $data['key'], $request->castedValue(), $data['type'] ?? null, $data['description'] ?? null, $data['group'] ?? null, $data['is_public'] ?? false ); // Pastikan key ikut terbarui jika diubah. if ($setting->key !== $data['key']) { $setting->key = $data['key']; } return redirect()->route('settings.index')->with('success', 'Setting berhasil diperbarui.'); } public function destroy(Setting $setting, SystemSettingService $service): RedirectResponse { $setting->delete(); $service->refresh(); return redirect()->route('settings.index')->with('success', 'Setting berhasil dihapus.'); } }