feat: chat topic added

This commit is contained in:
2026-06-03 16:28:49 +03:30
parent c52a234835
commit c930c26589
4 changed files with 121 additions and 0 deletions
@@ -0,0 +1,70 @@
<?php
namespace App\Http\Controllers;
use App\Models\ChatTopic;
use Illuminate\Http\Request;
class ChatTopicController extends Controller
{
// Suggested chat topics (موضوعات پیشنهادی). Active only unless include_inactive=1.
public function index(Request $request)
{
$query = ChatTopic::query();
if (!$request->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']);
}
}