Feature - Onboarding Business com Integrações Sebrae
Introdução ao documento
Este documento descreve o fluxo business, incluindo coleta de dados empresariais, validações de CNPJ e integrações condicionais com Sebrae.
Evidência: src/flows/business.ts:132
Versionamento
- Versão do documento:
2.0.0. - Última atualização:
2026-03-18. Evidência: codex-promts.md:16
Referencial teórico
- Máquina de telas de
business.ts. - Feature flags de integração Sebrae.
- Utilitário de validação de CNPJ. Evidência: src/flows/business.ts:156 Evidência: src/flows/business.ts:16 Evidência: src/utils/cnpj.ts:1
Visão geral
O fluxo business coleta dados de empresa e endereço, valida parceiro ALI, captura aceite de termos, realiza matrícula e pode sincronizar dados/presença com Sebrae quando habilitado. Evidência: src/flows/business.ts:216 Evidência: src/flows/business.ts:307 Evidência: src/flows/business.ts:513 Evidência: src/flows/business.ts:575 Evidência: src/flows/business.ts:616
Atores
- Usuário final no WhatsApp Flow.
- APIs WordPress e Sebrae.
- ViaCEP para preenchimento de endereço. Evidência: src/flows/business.ts:2 Evidência: src/flows/business.ts:5 Evidência: src/flows/business.ts:4
Pré-condições
flow_tokenválido comcourse_slugeuser_id.FEATURE_SEBRAE_INTEGRATIONeFEATURE_SEBRAE_ADDRESS_INTEGRATIONconfiguram caminhos de execução.- Acesso aos endpoints WordPress para perfil/matrícula. Evidência: src/utils/flowSession.ts:7 Evidência: src/flows/business.ts:16 Evidência: src/flows/business.ts:225
Fluxo principal
INITapresenta introdução do curso.PRESENTATIONvalida elegibilidade e, se habilitado, lista empresas via Sebrae.- Usuário informa/seleciona dados empresariais (
BUSINESS,BUSINESS_LIST,BUSINESS_CNPJ,BUSINESS_NAME). - Endereço é obtido por Sebrae (quando habilitado) ou ViaCEP/manual (
BUSINESS_LOCATION,BUSINESS_LOCATION_CONFIRM). - Captura PCD/ALI e valida código de parceiro quando aplicável.
- Registra termos, verifica turmas, matricula e sincroniza presença Sebrae (quando habilitado).
- Enfileira link de grupo e finaliza. Evidência: src/flows/business.ts:145 Evidência: src/flows/business.ts:181 Evidência: src/flows/business.ts:264 Evidência: src/flows/business.ts:366 Evidência: src/flows/business.ts:513 Evidência: src/flows/business.ts:579 Evidência: src/flows/business.ts:639
Fluxos alternativos
flow_tokeninválido retornaERROR.- CNPJ inválido bloqueia avanço em
BUSINESS_CNPJ. - CEP não localizado permite preenchimento manual.
- Código ALI inválido retorna erro e mantém tela.
- Sem turma disponível retorna erro em
TERMS_COMMITMENT. Evidência: src/flows/business.ts:158 Evidência: src/flows/business.ts:308 Evidência: src/flows/business.ts:413 Evidência: src/flows/business.ts:529 Evidência: src/flows/business.ts:580
Regras de negócio
- Integrações Sebrae só são usadas quando
FEATURE_SEBRAE_INTEGRATION === "true". - Seleção de empresa pode cair para caminho manual quando opção
NAO_ENCONTREI. - Validação de CNPJ é obrigatória no caminho
BUSINESS_CNPJ. - Sync de presença com Sebrae ocorre após matrícula bem-sucedida e feature habilitada. Evidência: src/flows/business.ts:182 Evidência: src/flows/business.ts:299 Evidência: src/flows/business.ts:308 Evidência: src/flows/business.ts:616
Estados possíveis (quando houver)
PRESENTATION,BUSINESS,BUSINESS_LIST,BUSINESS_CNPJ,BUSINESS_NAME,BUSINESS_LOCATION,BUSINESS_LOCATION_CONFIRM,PCD,ALI,TERMS,TERMS_COMMITMENT,SELECT_CLASS,FINAL,ERROR. Evidência: src/flows/business.ts:32 Evidência: src/flows/business.ts:67 Evidência: src/flows/business.ts:107 Evidência: src/flows/business.ts:562 Evidência: src/flows/business.ts:650
Endpoints envolvidos
POST /- Endpoints WordPress e Sebrae consumidos internamente no fluxo. Evidência: src/server.ts:102 Evidência: src/features/api/wp/getUserData.ts:14 Evidência: src/features/api/wp/enrollToCourse.ts:18 Evidência: src/features/api/sebrae/getPersonCompanies.ts:12 Evidência: src/features/api/sebrae/updatePersonAttendance.ts:16
Dados impactados
- Dados de perfil/matrícula em WordPress (externo).
- Dados de pessoa/presença em Sebrae (externo, quando habilitado).
- Fila local
GroupLinkDispatchQueuepara envio de link de grupo. - Referência de dados locais:
../data/model.md. Evidência: src/flows/business.ts:342 Evidência: src/flows/business.ts:576 Evidência: src/flows/business.ts:635 Evidência: src/flows/business.ts:639
Pendências
- Confirmar matriz oficial de comportamento por combinação de feature flags (Sebrae on/off e address on/off).
- Confirmar política de fallback quando APIs externas retornam payload parcial. Evidência: src/flows/business.ts:16 Evidência: src/flows/business.ts:367 Evidência: src/features/api/sebrae/getPersonCompanies.ts:13