Skip to content

Captação — 2. Cadastro inicial de profissional sem OTP #80

Description

@tarcisiopgs

Parte do épico Captação de profissionais — landing page e aprovação interna (frente: backend).

Objetivo: Endpoint de cadastro leve que cria a conta do profissional sem OTP e já a coloca na fila de moderação.

Arquivos: Modify src/controller/userController/index.mjs, src/routes/index.mjs, src/services/validationService.mjs · Test src/tests/registerProfessional.test.mjs
Dependências: #79 (Model User)

O que fazer:

  • POST /auth/registerProfessional recebe name, email, telefone, CNPJCPFProfissional, endereço, professionalSpecialties[], comoConheceu, acceptedTerms. Cria User status: pending, termsAcceptedAt e publicationStatus: em_analise — como o wizard foi engavetado, o cadastro é a entrada direta na fila de moderação (o admin avalia com os dados do cadastro).
  • Segurança: fixar userType: ["professional"] no servidor — nunca aceitar userType do body.
  • Sem OTP. Emite JWT de escopo limitado (scope: registration_pending, TTL do checkOTP).
  • validateLeadRegistration + rate limiting (@upstash/ratelimit).

Nota de evolução: quando a central de perfil entrar (épico central-perfil), o gate de em_analise pode migrar do cadastro automático para o "enviar para análise" da central (#88) — decisão de produto, ver developmentHC/conectaBemFront#244.

Test scenarios: payload válido → 201 + token escopo registration_pending + publicationStatus: em_analise; userType:["admin"] no body ignorado; token rejeitado em endpoints sensíveis; e-mail duplicado → conflito; sem aceite/especialidades/CPF/telefone inválidos → 400.

Pronto quando: POST válido cria o profissional sem OTP, com userType fixado, token de escopo limitado, e já em em_analise.

Metadata

Metadata

Assignees

No one assigned

    Labels

    captaçãoFrente: Captação de profissionais (LP + cadastro + moderação)enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions