teqo-backup/docs/plans/municipio-v2-shell-status.md
2026-08-02 20:22:05 -03:00

94 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Município v2 — shell + faixa de status
Status: registrado
Atualizado em: 2026-08-02
Issue: #330
Priority: P1
Model: cursor-grok-4.5-medium
Impeccable: C — fluxo novo na rota `/campanha/municipio/<slug>/v2`
Appetite: ~1–1,5 dia eng; rota + status operável (sem conta/rede/agora)
Responsável: —
**Plano pai:** [municipio-detalhe-v2.md](municipio-detalhe-v2.md) (lote B147–B152)
## Intenção
Abrir o município na v2 e, na **primeira dobra**, ler e alterar a conjuntura (nível, tendência, sinal) sem abas, sem `/editar` e sem scroll de cards. Esta fatia entrega o **chão** da v2: rota paralela + faixa de status densa. Conta, rede, agora e FAB ficam nos filhos.
## Persona e fluxo
- **Persona / contexto:** Coordenador Geral (e staff unrestricted / assessor no município), vindo da lista ou do mapa, com pressa.
- **Job principal:** em poucos segundos responder “como estamos neste município?” e registrar mudança de nível, tendência ou sinal.
- **Fluxo desejado:**
1. Abre `/campanha/municipio/<slug>/v2`.
2. Vê três **seletores** equivalentes (nível, tendência, sinal) + classe territorial + indicador de silêncio/frescor.
3. Ao mudar qualquer um dos três → **modal de motivo opcional** → Confirmar (vazio OK).
4. Sob os controles, lê o **agregado** das últimas notas (nível · tendência · sinal).
5. Hover/focus em cada chip/controle → **tooltip** com one-liner + link para o conceito em `/campanha/conceitos`.
- **Anti-goals de produto:** painel de ajuda inline no lugar de tooltip; fluxo de sinal diferente do de nível/tendência; motivo obrigatório; hero com nome/TI no corpo (B145); auto-gravar ao tocar o select.
### Esboço de fluxo (C)
```text
[Abrir v2]
→ faixa: [Select nível] [Select tendência] [Select sinal] [Classe] …
→ [mudou select] → [Modal motivo opcional] → [Confirmar]
→ agregado atualiza
→ (placeholders ou vazio para conta/rede/agora — filhos)
```
## Objetivo e aceite
- Rota v2 acessível a staff do município; **leader** não entra (lockdown).
- Nível, tendência e sinal usam o **mesmo padrão de seletor** + modal de motivo opcional.
- Agregado de texto mostra as últimas notas disponíveis dos três eixos (e ausência de sinal / idade quando couber).
- Tooltips nos sinais da faixa (nível, tendência, sinal, classe) com resumo + link a conceitos.
- Página `/campanha/municipios/[slug]` **intacta**.
- Mobile: faixa legível sem exigir scroll horizontal de abas.
- Nome do município / TI não competem como hero no corpo (respeitar B145 / chrome existente).
## Dados (intenção)
- **Vou apresentar dados?** Sim, sobretudo qualitativos (nível, tendência, tipo/idade de sinal, classe).
- **Decisões desbloqueadas:**
- CG: “subo/desço envolvimento?” / “marco conjuntura?” / “registro sinal agora?”
- Staff: “este município está frio (silêncio)?”
- **Forma:** _adiada ao plano de implementação_. Restrição: silêncio/frescor alinhado à regra de produto já usada na lista (ordem de grandeza de dias frios).
## Direção no codebase (hipótese)
- **Áreas prováveis:** nova rota sob `src/app/(campaign)/campanha/(app)/municipio/…/v2`; composição em `components/campaign/municipality/`; reuso de loaders/view models de detalhe/estratégia/updates; tooltips no precedente de hover da campanha; glossário via conceitos.
- **Precedente a olhar:** detalhe atual; B134 (motivo opcional); B145 (título no header); E14 nível; registro de sinal na lista.
- **Risco de acoplamento:** escrita de nível só unrestricted; não expor campos staff a leader; não quebrar rota antiga.
## Dependências
- Soft: B145 (chrome de título), B134 (política de motivo opcional).
- Pai: [municipio-detalhe-v2.md](municipio-detalhe-v2.md).
- Filhos que esperam este: B148–B151 (hard), B152 (hard).
## Fora de escopo
- Conta P/M/O e cobertura (B148).
- Lista de lideranças / pledges (B149).
- Encaminhamento, sugestões, visita (B150).
- FAB de secundárias (B151).
- Cutover (B152).
- Comparativo eleitoral / dossiê completo na dobra.
## Rabbit holes de produto
- **Reimplementar o dossiê na home da v2.** **Corte:** só status nesta Issue.
- **Wizard completo de nível (histerese/override) redesenhado do zero.** **Corte:** respeitar ritos de produto já decididos (E14 + B134); só o encaixe na faixa.
- **Tooltip = página de conceito embutida.** **Corte:** one-liner + link.
## Questões em aberto (produto)
- **Select de sinal com município “frio” mostra o quê como valor atual?** **Opções:** A) valor sentinela “Sem sinal / frio (N dias)” | B) último tipo + idade na label. **Recomendação:** A na faixa + idade no agregado/tooltip — deixa óbvio que dá para registrar. _(assumido — validar na demo da v2)_
## Referências
- GitHub Issue #330
- Pai: [municipio-detalhe-v2.md](municipio-detalhe-v2.md)
- B134 / `docs/plans/motivo-opcional-tendencia-e-nivel.md`
- Conceitos: `#nivel-de-envolvimento`, `#classe-territorial`, `#pauta-do-silencio`