Parte do épico Central de perfil do profissional (frente: backend). Mocks são base direcional.
Objetivo: Endpoint "enviar para análise" com critério de completude e guards.
Arquivos: Modify src/controller/userController/index.mjs, src/routes/index.mjs · Test src/tests/submitForReview.test.mjs
Dependências: Task 2 (e os campos compartilhados da Task 1 / captação)
O que fazer:
- Endpoint autenticado que: (a) rejeita se
active: false; (b) valida o critério de completo (Dados Pessoais + Serviços + Local de Atendimento); (c) é idempotente/guardado — se já em_analise/aprovado, retorna 409; (d) em sucesso seta publicationStatus: em_analise + status: completed.
- Incompleto → 422 com as seções faltantes.
Test scenarios: completo+ativo → em_analise+completed; incompleto → 422 com o que falta; já em análise/aprovado → 409; conta inativa → barrada; biografia/pagamento vazios não bloqueiam.
Pronto quando: um perfil completo e ativo entra em análise; re-submissões e contas inativas são barradas.
Parte do épico Central de perfil do profissional (frente: backend). Mocks são base direcional.
Objetivo: Endpoint "enviar para análise" com critério de completude e guards.
Arquivos: Modify
src/controller/userController/index.mjs,src/routes/index.mjs· Testsrc/tests/submitForReview.test.mjsDependências: Task 2 (e os campos compartilhados da Task 1 / captação)
O que fazer:
active: false; (b) valida o critério de completo (Dados Pessoais + Serviços + Local de Atendimento); (c) é idempotente/guardado — se jáem_analise/aprovado, retorna 409; (d) em sucesso setapublicationStatus: em_analise+status: completed.Test scenarios: completo+ativo →
em_analise+completed; incompleto → 422 com o que falta; já em análise/aprovado → 409; conta inativa → barrada; biografia/pagamento vazios não bloqueiam.Pronto quando: um perfil completo e ativo entra em análise; re-submissões e contas inativas são barradas.