# Spec 029 — Tickets Workspace (Motor de Tickets) **Status:** ✅ Reconstruído 2026-06-19 **Prioridade:** P0 — antes de Live Presence / ASM **VM:** VM122 Desk · `desk.ligbox.com.br` ## Resumo Motor de tickets modular — command center com KPIs, filas inteligentes, painel de detalhe com abas e integração ASM (quando Spec 010 activa). ## Módulos frontend | Ficheiro | Função | |----------|--------| | `tickets-workspace.js` | Lista P0-P2: 8 KPIs, cards, filas, busca, softRefresh | | `tickets-detail-panel.js` | Detalhe P1: abas Resumo \| Ao vivo \| Funil \| Espelho | | `desk-live-stub.js` | Fallback se módulo `wizard-live` inactivo | | `app.js` | Delega `renderTickets` / `renderTicketDetail` | ## Entregas P0 → P2 ### P0 — Lista - 8 KPIs: Abertos, Assistindo, Escalados, Live, Sem dono, Parados, Billing, Wazuh - Cards com 3 sinais: estado · live/offline · fase/SLA - Busca por #ticket, domínio, e-mail, sessão, OB- ### P1 — Detalhe + filas - Abas: Resumo, Ao vivo, Funil, Espelho cliente (pré-ASM) - Banner próxima acção (assumir, escalar, reabrir ASM…) - Chips de fila: Live, Parados, Sem dono, Billing, Wazuh, Escalados ### P2 — Interacção - KPIs clicáveis (filtram lista) - `softRefresh` no poll global (~30s) sem flash ## Deploy ```bash # VM122 (quando SSH activo) bash /opt/ligbox-spec-hub/scripts/deploy-tickets-vm122.sh # Ou manual cd /opt/ligbox-ops-platform git pull cp -a projects/ops-desk/frontend/assets/tickets*.js frontend/assets/ docker compose -f docker-compose.mvp.yml build frontend && docker compose -f docker-compose.mvp.yml up -d frontend ``` ## Dependências - Spec 003 (auth/RBAC) — `canAssist()`, roles - Spec 010 (ASM) — abas espelho, resume-wizard (backend) - Spec 012 (ABANDONADO) — rails stale/lead nos cards - Spec 015 (módulos) — `DeskModules` - Spec 027 wizard-live (opcional) — substitui `desk-live-stub.js` → Ver [ARCHITECTURE.md](./ARCHITECTURE.md)