-- Backfill: linkar document_generated.documento_id em registros antigos -- pra suportar re-edicao in-place de documentos gerados. -- -- O codigo novo (DocumentGenerate.service.js saveGeneratedDocument) ja -- preenche o documento_id no INSERT pra criacoes novas. Este script eh -- one-off pra docs gerados ANTES desse fix. -- -- Match: dg.pdf_path = d.bucket_path + match de tenant/patient pra evitar -- linkar a doc errado em caso colidente. Registros sem match (paths que -- nao existem mais em documents — docs deletados/cleanup) ficam orfaos -- com documento_id=NULL: nao quebra nada, so nao tem caminho de re-edit. BEGIN; UPDATE public.document_generated dg SET documento_id = d.id FROM public.documents d WHERE dg.documento_id IS NULL AND dg.pdf_path = d.bucket_path AND dg.patient_id = d.patient_id AND dg.tenant_id = d.tenant_id AND d.deleted_at IS NULL; -- Relatorio pos-backfill DO $REPORT$ DECLARE v_linked int; v_orphans int; BEGIN SELECT count(*) FILTER (WHERE documento_id IS NOT NULL), count(*) FILTER (WHERE documento_id IS NULL) INTO v_linked, v_orphans FROM public.document_generated; RAISE NOTICE 'document_generated: % linked, % orphans (sem documents correspondente)', v_linked, v_orphans; END; $REPORT$; COMMIT;