API — Doc-sign (termos e assinaturas)
Domínio nativo da
kunk-apipara o appapps/doc-sign. Spec funcional completa:../frontend/doc-sign/.
Prefixo
Seção intitulada “Prefixo”/api/v1/doc-sign/...Não é módulo opcional (MODULE_*). Faz parte do núcleo .
Responsabilidades
Seção intitulada “Responsabilidades”- CRUD/versionamento de 2 templates:
content_json(TipTap/JSONB) + snapshot PDF gerado na própria API - Geração de contratos a partir de
users(+ pacienteassociate_cpf) - Assinatura por token (draw/type/upload) + audit (IP, UA, timezone — sem session_id)
- Conclusão: PDF assinado +
users.adhesion_term(UUID) +associate_status4→5 - Bloqueio: no máximo um contrato
completedpor associado/e-mail
Sem Document Server, LibreOffice ou DOCX canônico — PDF gerado na API a partir do JSON TipTap (ver ../frontend/doc-sign/).
Tabelas
Seção intitulada “Tabelas”Ver ../frontend/doc-sign/fields §3.
Endpoints (resumo)
Seção intitulada “Endpoints (resumo)”| Área | Paths |
|---|---|
| Templates | GET/PUT/POST /doc-sign/templates…, POST /templates/:kind/reset |
| Contracts | POST/GET/DELETE /doc-sign/contracts… (replace_completed no create) |
| Sign | GET/POST /doc-sign/sign/:token… |
| Verify | GET /doc-sign/contracts/:id/verify |
Detalhe de payloads: ../frontend/doc-sign/api.
Integração cadastramento
Seção intitulada “Integração cadastramento”Na conclusão da assinatura (mesma API, sem webhook):
term_contracts.status = completedusers.adhesion_term = contract.idusers.associate_status = 5 (se estava 4)Comportamento das rotas /terms/*
Seção intitulada “Comportamento das rotas /terms/*”Aliases de transição (/terms/* → /doc-sign/*). Sem doc-sign ativo, as respostas usam TERMS_MODULE_IN_DEVELOPMENT / 501. Com o módulo ativo, os handlers reais atendem essas rotas.
