boolean('include_inactive')) { $query->where('is_active', true); } return response()->json($query->orderBy('order')->get()); } public function show($id) { return response()->json(ChatTopic::findOrFail($id)); } public function store(Request $request) { $data = $request->validate([ 'title' => 'required|string|max:255', 'description' => 'nullable|string', 'order' => 'nullable|integer', 'is_active' => 'nullable|boolean', ]); $topic = ChatTopic::create($data); return response()->json([ 'message' => 'Topic created successfully', 'topic' => $topic, ], 201); } public function update(Request $request, $id) { $topic = ChatTopic::findOrFail($id); $data = $request->validate([ 'title' => 'sometimes|string|max:255', 'description' => 'nullable|string', 'order' => 'nullable|integer', 'is_active' => 'nullable|boolean', ]); $topic->update($data); return response()->json([ 'message' => 'Topic updated successfully', 'topic' => $topic, ]); } public function destroy($id) { $topic = ChatTopic::findOrFail($id); $topic->delete(); return response()->json(['message' => 'Topic deleted successfully']); } }