Skip to main content

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

  1. Mensagens: exibidas a partir de _profileState.messages (highlightedMessages, groupedMessages)
  2. 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_buildMessagesAndPreferencesTab
  • frontend/lib/domain/entities/user_profile.dart → UserMessage
  • frontend/lib/application/services/user_profile_service.dart → updatePreferences