Saltar para o conteúdo principal

Documentos e PDF — implementado L1

GET /v1/documents, GET /v1/documents/{id}, GET /v1/documents/{id}/pdf, POST /v1/documents. GET exige read, POST write e Idempotency-Key. Criação aceita {type: offer|costEstimate|invoice, folderId, name?, subject?, recipient?, date?}; projeto e contacto referenciado têm de existir na organização. Cria envelope editorEnvelopeSchema vazio, draft, versão 1, totais zero e publishedId vazio. Não aceita estado, número, linhas, pagamentos ou ações fiscais. PDF devolve URL assinada curta, sem emitir nem numerar. Edição de linhas continua na app; finalização nunca é exposta por /v1.

Listas paginadas e erros conforme Convenções. Contrato executável: functions/src/api/resources.ts e schemas partilhados.