"""Operational queue diagnostic routes. Moved from app.admin_dashboard in v4.7.2. The handlers still reuse legacy helpers to keep this refactor behavior-preserving. """ from fastapi import APIRouter import app.admin_dashboard as legacy from app.admin_dashboard import * # noqa: F401,F403 router = APIRouter() @router.get("/queues", response_class=HTMLResponse) @router.get("/filas", response_class=HTMLResponse) async def queues_page(): metrics = get_admin_dashboard_metrics() queue_defs = [ ("vendas", "Comercial", "Orçamentos, propostas e oportunidades", "pending_vendas", "cf-chip-blue"), ("financeiro", "Financeiro", "Pagamentos, faturas e comprovativos", "pending_financeiro", "cf-chip-green"), ("operacoes", "Logística", "Envios, recolhas e entregas", "pending_operacoes", "cf-chip-orange"), ("suporte", "Suporte", "Técnico, garantia e pós-venda", "pending_suporte", "cf-chip-purple"), ("rever", "Rever", "Casos ambíguos ou baixa confiança", "pending_rever", "cf-chip-gray"), ] rows = "" chart_items = "" for route_key, label, description, metric_key, chip_class in queue_defs: count = int(metrics.get(metric_key) or 0) active_tasks = [] try: active_tasks = list_tasks(status="pending", route=route_key, limit=1) except Exception: active_tasks = [] priority = "Alta" if route_key in {"financeiro", "operacoes"} and count else ("Média" if count else "Baixa") rows += f'''
| Fila | Descrição | Tarefas | Prioridade | Ações |
|---|