Status: Approved · v2 · SPEC-UX-MANAGEMENT-001
depends_on: SPEC-DOMAIN-PERMISSION-001, SPEC-UX-SHELL-001
used_by: IS-MVP-04.2, IS-MVP-08.3
Minha Gestão e dashboards por entidade
A gestão deve ser contextual por entidade, com clareza operacional e sem um painel geral inchado.
Objetivo
A gestão deve ser contextual por entidade, com clareza operacional e sem um painel geral inchado.
Pontos de entrada
- Perfil → Minha Gestão.
- Card Minha Gestão na Home.
- Atalho “Gerenciar” em página pública.
- Notificação de gestão.
Hierarquia da tela
- Lista de entidades agrupadas por tipo.
- Seleção de entidade abre dashboard específico.
- Header contextual com identidade, status, role e ações rápidas permitidas.
- Resumo de saúde da entidade: pendências reais, próximos eventos e atalhos.
- Navegação interna por módulos.
- Audit/permissions/config em áreas secundárias.
Componentes e comportamento
Entity Switcher
Troca entre entidades geridas preservando tipo e rota equivalente quando existir.
Context Header
Mostra entidade, status e papel atual. Ações críticas nunca ficam escondidas em menu genérico.
Pending Cards
Somente pendências daquele contexto: convite, validação, pagamento, claim, disciplina ou aprovação.
Quick Actions
No máximo 3–5 ações frequentes derivadas de permission keys.
Module Navigation
Cada entidade possui módulos próprios; campos/serviços não exibem carteira ou campeonato por engano.
Permission Explanation
Ação bloqueada explica a permission necessária e quem pode conceder.
Ações do usuário
| Ação | Pré-condição | Resultado | Falha/alternativa |
|---|---|---|---|
| Selecionar entidade | Membership active | Abre contexto | Revoked/suspended |
| Abrir módulo | Permission ou leitura | Tela interna | 403 contextual |
| Resolver pendência | Permission + estado | Executa fluxo | Conflito/expirada |
| Convidar gestor | manageManagers | Fluxo de acesso | Limite/duplicidade |
Estados obrigatórios
| Estado | Representação | Ação disponível |
|---|---|---|
| No managed entities | Explica como criar/reivindicar | Criar entidade |
| Entity suspended | Banner e módulos limitados | Suporte |
| Membership revoked | Sai do contexto | Voltar |
| Loading | Skeleton contextual | — |
| Partial | Módulo específico falha | Retry |
Autenticação e permissões
- A lista inclui apenas active memberships.
- Role/permission vem do backend.
- Dashboard não antecipa dados privados de módulos sem acesso.
Responsividade
- Mobile usa cards e navegação por lista/tabs.
- Desktop pode usar sidebar da entidade e conteúdo largo.
- Tabelas complexas aparecem apenas dentro de módulos apropriados.
Acessibilidade
- Contexto anunciado ao trocar entidade.
- Ações desabilitadas têm descrição acessível.
- Pendências não dependem só de cor.
Eventos de produto e observabilidade
- management_home_viewed
- managed_entity_opened
- management_module_opened
- pending_action_opened
- entity_switched
Dados e endpoints
- GET /management/my-entities.
- GET /:entity/:id/management-summary.
- GET /notifications?scope=management&entity=.
Critérios de aceite
- Sem dashboard global pesado.
- Contexto sempre visível.
- Módulos e ações por entidade/permission.
- Pendências reais, não métricas inventadas.
Pós-MVP
- Favoritos, atalhos personalizáveis e insights.
Decisões registradas
- Gestão dentro do app único.
- Cada entidade possui seu painel.
- Minha Gestão agrupa, não centraliza toda operação.
Machine summary
spec: SPEC-UX-MANAGEMENT-001
screen_or_flow: Minha Gestão e dashboards por entidade
required_states:
- loading
- success
- empty
- error
must_use:
- contracts
- service
- hook
- design_tokens
must_not:
- direct_fetch
- direct_fixture_import
- hardcoded_brand_colors