TDD — Tab Mensagens e Preferências (ProfileDialog)
Status
Implementado
Contexto
Aba "Mensagens e Preferências" do ProfileDialog. Sub-tabs:
- Mensagens — lista de mensagens do perfil (destaques + demais agrupadas)
- Preferências — skin do app (default, light, dark, sepia), botão salvar
Contratos
Mensagens
- Dados vêm do perfil (UserProfile.messages), carregado via myProfileHttp / USER_GET
- Sem endpoint específico — exibição apenas
- Estrutura:
UserMessage { id, type, title, body, createdAt, readAt?, highlighted?, sourceLevel? }
Preferências
USER_PREFERENCES_UPDATE(gateway) — payload:preferences.appearance { skin: "default"|"light"|"dark"|"sepia" }
Interface de Usuário (UI)
Aba Mensagens e Preferências do ProfileDialog, com sub-tabs.
Sub-tab Mensagens:
- Destaques (nível imediatamente abaixo) — Cards em primaryContainer com mensagens destacadas
- Demais mensagens agrupadas — ListTiles com título e corpo
- "Sem mensagens no momento." quando vazio
Sub-tab Preferências:
- Skin do app — Dropdown: Default, Light, Dark, Sepia
- Salvar preferências — botão com ícone de paleta
Observação: Mensagens vêm do perfil; não há ação de marcar como lida na UI atual.
Fluxo
- Mensagens: exibidas a partir de
_profileState.messages(highlightedMessages, groupedMessages) - Preferências: usuário seleciona skin → clica "Salvar preferências" → USER_PREFERENCES_UPDATE
Código de referência
frontend/lib/presentation/modules/profile_dialog/home_profile_dialog_tabs.dart→_buildMessagesAndPreferencesTabfrontend/lib/domain/entities/user_profile.dart→ UserMessagefrontend/lib/application/services/user_profile_service.dart→ updatePreferences