json(LeadStatus::orderBy('sort_order')->get()); } public function store(Request $request): JsonResponse { $validated = $request->validate([ 'name' => 'required|string|max:255', 'slug' => 'required|string|max:80|unique:lead_statuses,slug', 'color' => 'nullable|string|max:20', 'icon' => 'nullable|string|max:255', 'sort_order' => 'nullable|integer', 'is_active' => 'nullable|boolean', 'is_default' => 'nullable|boolean', 'is_won' => 'nullable|boolean', 'is_lost' => 'nullable|boolean', ]); $status = LeadStatus::create($validated); ActivityLogger::log('lead_status_created', "Status {$status->name} created"); return response()->json($status, 201); } public function update(Request $request, LeadStatus $leadStatus): JsonResponse { $validated = $request->validate([ 'name' => 'sometimes|string|max:255', 'slug' => 'nullable|string|max:80|unique:lead_statuses,slug,'.$leadStatus->id, 'color' => 'nullable|string|max:20', 'icon' => 'nullable|string|max:255', 'sort_order' => 'nullable|integer', 'is_active' => 'nullable|boolean', 'is_default' => 'nullable|boolean', 'is_won' => 'nullable|boolean', 'is_lost' => 'nullable|boolean', ]); $leadStatus->update($validated); ActivityLogger::log('lead_status_updated', "Status {$leadStatus->name} updated"); return response()->json($leadStatus); } public function destroy(LeadStatus $leadStatus): JsonResponse { $leadStatus->delete(); ActivityLogger::log('lead_status_deleted', "Status {$leadStatus->name} deleted"); return response()->json(['message' => 'وضعیت حذف شد']); } public function reorder(Request $request): JsonResponse { $request->validate(['order' => 'required|array', 'order.*.id' => 'exists:lead_statuses,id', 'order.*.sort_order' => 'required|integer']); foreach ($request->order as $item) { LeadStatus::where('id', $item['id'])->update(['sort_order' => $item['sort_order']]); } return response()->json(['message' => 'مرتب‌سازی انجام شد']); } }