Skip to content

feat: Governança comunitária (votações) no app + jornada BFF#287

Merged
cursor[bot] merged 3 commits into
mainfrom
cursor/governanca-votacoes-app-1c6f
Jun 29, 2026
Merged

feat: Governança comunitária (votações) no app + jornada BFF#287
cursor[bot] merged 3 commits into
mainfrom
cursor/governanca-votacoes-app-1c6f

Conversation

@sraphaz

@sraphaz sraphaz commented Jun 27, 2026

Copy link
Copy Markdown
Owner

📋 Descrição

Implementa a próxima evolução identificada para deixar o app completo: Governança Comunitária (votações territoriais) — o único vertical do produto totalmente ausente no app Flutter, apesar de o backend (Fase 14, crítica) já estar 100% pronto. Reforça os valores centrais do produto (autonomia local, cuidado coletivo, participação).

A UI segue o handoff de design Arah (PR #284): ArahScaffold, ArahListSkeleton, tokens de espaçamento/raio (AppConstants), cores via Theme.colorScheme (sem cores hardcoded) e snackbars do design system.

BFF

  • Registra a jornada governance em BffJourneyRegistry (proxy para api/v1/territories/{territoryId}/votings, mesmo padrão da jornada moderation).
  • Endpoints: listar, criar, votar, fechar e resultados; TTL de cache governance: 45s.

App (frontend/arah.app/lib/features/governance/)

  • data: model Voting/VotingResults, GovernanceRepository e provider Riverpod (StateNotifier por território, filtro de status, controle local de votos).
  • presentation: tela de votações (filtros Todas/Abertas/Fechadas, votar inline, folha de resultados com barras) e tela de criação (tipo, visibilidade, opções dinâmicas).
  • Rota /governance?territoryId= e atalho (ícone de votação) na tela Explorar.
  • Strings i18n pt/en + regeneração das localizations.

🔄 Tipo de Mudança

  • Nova funcionalidade

🧪 Testes

  • dotnet build backend/Arah.Api.Bff e dotnet build Arah.sln -c Release (0 erros)
  • dotnet test Arah.Tests.Bff — 133 passando (3 novos para a jornada governance)
  • flutter analyze --no-fatal-infos — sem erros/warnings na feature
  • flutter test — 33 passando (7 novos: parsing do model + smoke da tela)
  • ✅ End-to-end via BFF (curl): GET governance/{tid}/votings → 200; POST → 403 (regra Resident aplicada pela API); catálogo /bff/journeys com 21 jornadas
  • ✅ Demo manual no app Flutter web (Explorar → Governança → filtros → "Nova votação" → submeter), exercitando o caminho app→BFF→API com tratamento de erro gracioso

Walkthrough

arah_governance_app_demo.mp4

Tela Governança (estado vazio + filtros)
Formulário Nova votação preenchido
Submissão com tratamento de erro gracioso

📝 Observações

  • No ambiente dev (provider InMemory) um usuário novo é Visitante; criar votação exige Resident (sem caminho de promoção sem curador semeado), então o demo de criação retorna a validação do servidor de forma graciosa. Listar/votar em votações AllMembers funciona para membros — coberto pelos testes automatizados.
  • Próximos passos sugeridos (fora do escopo): ligar o histórico de governança no Perfil (me/profile/governance), criação de eventos no app, deep-links no mapa.

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

cursoragent and others added 3 commits June 27, 2026 18:04
Co-authored-by: Rapha <sraphaz@users.noreply.github.com>
- Registra jornada 'governance' no BffJourneyRegistry (proxy para api/v1/territories/{territoryId}/votings)
- Endpoints: listar, criar, votar, fechar e resultados de votacoes
- TTL de cache (governance: 45s) em appsettings
- Testes do registro atualizados (mapeamento + endpoints)

Co-authored-by: Rapha <sraphaz@users.noreply.github.com>
- Nova feature governance: model Voting/VotingResults, repository e provider Riverpod
- Tela de votacoes com filtro de status, votar inline e folha de resultados
- Tela de criacao de votacao (tipo, visibilidade, opcoes dinamicas)
- Rota /governance e atalho na tela Explorar
- Strings i18n (pt/en) e regeneracao das localizations
- Testes: parsing do model e smoke da tela

Co-authored-by: Rapha <sraphaz@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3db6c914-b8b3-4120-9f47-dd6f30598156

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cursor/governanca-votacoes-app-1c6f

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor cursor Bot merged commit a25a291 into main Jun 29, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants