select(Setting::adminSelectColumns()) ->orderBy('key'); if (!$request->boolean('editable_only')) { return response()->json($query->get()); } return response()->json($query->where('can_edit', 1)->get()); } public function edit(Request $request) { // Check if the setting exists $setting = Setting::where('key', $request->key)->first(); if ($setting) { $setting->value = $request->value; $setting->description = $request->description; if ($request->has('is_active')) { $setting->is_active = filter_var($request->is_active, FILTER_VALIDATE_BOOLEAN) ? 1 : 0; } $setting->title_fa = $request->title_fa ?? ''; if (Setting::hasTypeColumn()) { $setting->type = $request->type ?? ''; } $setting->save(); } else { $setting = new Setting(); $setting->key = $request->key; $setting->title_fa = $request->title_fa ?? ''; $setting->value = $request->value; $setting->description = $request->description; $setting->is_active = filter_var($request->is_active ?? true, FILTER_VALIDATE_BOOLEAN) ? 1 : 0; $setting->can_edit = 1; if (Setting::hasTypeColumn()) { $setting->type = $request->type ?? ''; } $setting->save(); } // Return the setting as a JSON response return response()->json($setting); } }