D-1a — Captura
Parte da D-1 — Ingestão de Demanda
A D-1a é o ponto de entrada do sistema. Toda interação com o cidadão começa aqui. Ela tem duas camadas com documentos independentes:
| Camada | Responsabilidade | Documento |
|---|---|---|
| BFF | Servidor NestJS acoplado: validação, idempotência, gestão de identidade e publicação de eventos no barramento. Persiste o dado bruto de demandas; para lugares, persiste o hash de idempotência, o rastreamento_id e o payload do evento, usado pela varredura de republicação no boot. O write model definitivo pertence à L-1. |
D-1a - BFF.md |
| Front-end | App React/Vite: mapa, fluxos de adição de demanda e lugar, formulários de captura | D-1a - Front-end.md |
Dois tipos de dado entram pelo mesmo ponto:
- Demandas públicas — o que está faltando, quebrado ou precisando de atenção no território.
- Lugares — o que existe no território: residências, organizações, equipamentos públicos.
Os dois fluxos compartilham a mesma tela inicial e o mesmo BFF, mas publicam eventos distintos no barramento: demanda.recebida e lugar.recebido. Os fluxos de identidade publicam cidadão.cadastrado, cidadão.vinculado e cidadão.perfil_atualizado. O BFF também expõe as três rotas de escrita do fluxo do conselheiro, que publicam conselheiro.cadastrado, conselheiro.atribuicao_recusada e conselheiro.atualização_registrada. A D-1a não normaliza, não categoriza, não georreferencia, não prioriza. Ela entrega o dado bruto ao barramento e devolve ao cidadão um ID para acompanhamento. A partir do evento publicado, toda a cadeia de colônias é disparada.
Referência
Seção intitulada “Referência”- Especificação técnica completa do BFF: D-1a - BFF.md
- Especificação do front-end: D-1a - Front-end.md
- Schemas de eventos: N-0b - Registry.md, seções 3.4.1 (
demanda.recebida), 3.4.19 (lugar.recebido), 3.4.28–3.4.30 (eventos de cidadão) e 3.4.10, 3.4.17 e 3.4.18 (eventos de conselheiro) - Ficha técnica da colônia: Apêndice B - Colônias.md, seção “D-1a — Captura”
- Taxonomia de categorias: D-3 - Taxonomia.md