withCount('faqs'); if (!$request->boolean('include_inactive')) { $query->where('is_active', true); } return response()->json($query->orderBy('order')->get()); } public function show($id) { return response()->json(FaqCategory::with('faqs')->withCount('faqs')->findOrFail($id)); } public function store(Request $request) { $data = $request->validate([ 'name' => 'required|string|max:255', 'order' => 'nullable|integer', 'is_active' => 'nullable|boolean', ]); $category = FaqCategory::create($data); return response()->json(['message' => 'FAQ category created', 'category' => $category], 201); } public function update(Request $request, $id) { $category = FaqCategory::findOrFail($id); $data = $request->validate([ 'name' => 'sometimes|string|max:255', 'order' => 'nullable|integer', 'is_active' => 'nullable|boolean', ]); $category->update($data); return response()->json(['message' => 'FAQ category updated', 'category' => $category]); } public function destroy($id) { FaqCategory::findOrFail($id)->delete(); // faqs cascade return response()->json(['message' => 'FAQ category deleted']); } }