From 67058d00272b4f6a3ff5bc5dd54a1a544afb8590 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Ign=C3=A1cio=20Fontoura=20Solla?= Date: Wed, 29 Jul 2026 22:55:19 -0300 Subject: [PATCH 1/2] B51: add Atividades group to staff home search. Staff can find activities by title with scoped access, municipality+date secondary, and word-start matching on the existing home-search POST. --- .cursor/rules/projects/nucleos-eleitorais.mdc | 7 +- AGENTS.md | 2 + .../busca-global-resultados-atividades.md | 4 +- docs/roadmap.md | 8 +- .../campanha/(app)/home-search/route.ts | 16 +- src/app/(campaign)/campanha/(app)/page.tsx | 2 + .../campaign/activity/ActivityCard.tsx | 8 +- .../dashboard/HomeSearchActivityGroup.tsx | 33 +++++ src/lib/campaignHomeSearchHits.ts | 15 +- src/utilities/activityViewModels.ts | 13 ++ .../homeSearch/loadHomeSearchSuggestions.ts | 1 + .../homeSearch/searchHomeActivities.ts | 88 +++++++++++ .../homeSearch/searchHomeAdvisors.ts | 3 +- .../homeSearch/searchHomeMunicipalities.ts | 2 + tests/int/homeSearchActivities.int.spec.ts | 138 ++++++++++++++++++ 15 files changed, 317 insertions(+), 23 deletions(-) create mode 100644 src/components/campaign/dashboard/HomeSearchActivityGroup.tsx create mode 100644 src/utilities/homeSearch/searchHomeActivities.ts create mode 100644 tests/int/homeSearchActivities.int.spec.ts diff --git a/.cursor/rules/projects/nucleos-eleitorais.mdc b/.cursor/rules/projects/nucleos-eleitorais.mdc index 555cad8d..262a421f 100644 --- a/.cursor/rules/projects/nucleos-eleitorais.mdc +++ b/.cursor/rules/projects/nucleos-eleitorais.mdc @@ -7,7 +7,7 @@ alwaysApply: false ## Status -- **B52 entregue em código (2026-07-29):** quarto grupo da busca global do Início — **Dobradinhas** via `searchHomeStateDeputies` + `HomeSearchStateDeputyGroup` (após Assessores); `POST /campanha/home-search` agrega `stateDeputies`; match word-start em nome ou partido; secundário `partido · N municípios`; assessor vê hits (staff read); `municipalityIdsByStateDeputyIds` em `stateDeputyData`. Int `homeSearchStateDeputies.int.spec.ts`. WA = **B55** (sem telefone na entidade). Plano: [`busca-global-resultados-dobradinhas.md`](../../../docs/plans/busca-global-resultados-dobradinhas.md). Próximo na cadeia busca: **B51** atividades. +- **B52 entregue em código (2026-07-29):** quarto grupo da busca global do Início — **Dobradinhas** via `searchHomeStateDeputies` + `HomeSearchStateDeputyGroup` (após Atividades); `POST /campanha/home-search` agrega `stateDeputies`; match word-start em nome ou partido; secundário `partido · N municípios`; assessor vê hits (staff read); `municipalityIdsByStateDeputyIds` em `stateDeputyData`. Int `homeSearchStateDeputies.int.spec.ts`. WA = **B55** (sem telefone na entidade). Plano: [`busca-global-resultados-dobradinhas.md`](../../../docs/plans/busca-global-resultados-dobradinhas.md). Próximo na cadeia busca: **B53** demandas. - **B72 entregue em código (2026-07-29):** gap horizontal da strip de ações do Início (UX-1) — `CampaignHomeActionStrip` `