feat: backfill_document_links_legacy para docs legados de cove/edoc por numero (T2025-09-004)

Algunos documentos viejos quedaron con nomenclatura olvidada (otro pedimento_app
y/o prefijo, p.ej. vu_EDC_0201_800_..._04382515ZIFF5) que el matcher estricto no
liga. Como el numero_cove/numero_edocument es unico y esta en el nombre, este
comando los liga por ese numero (con frontera), sin exigir app ni prefijo.

Solo cove/edoc (llaves unicas); partida queda fuera (enteros cortos -> colisiones)
y nativos no tienen entidad. Correr despues de backfill_document_links.

Agrega core.document_links.numero_en_nombre. Fix: el DISTINCT de pedimento_id
limpia el ordering por defecto del modelo para no duplicar.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-24 13:26:06 -06:00
parent b805c791dc
commit dcabfb8762
4 changed files with 131 additions and 0 deletions

View File

@@ -19,6 +19,11 @@ tipo, repos afectados, qué se hizo y por qué. Reglas del flujo en `../CLAUDE.m
`document_type` + nombre de archivo en toda ruta de creación (incluida la ingesta del
microservicio); set explícito de la FK en `create_vu_record`.
- Comando `backfill_document_links` para poblar la FK en filas existentes (idempotente).
- Comando `backfill_document_links_legacy` para documentos LEGADOS de cove/edoc con
nomenclatura vieja (otro `pedimento_app`/prefijo, p.ej. `vu_EDC_0201_800_..._{numero}`
en un pedimento `25-80-...`): liga por el `numero_cove`/`numero_edocument` único
presente en el nombre, sin exigir app ni prefijo. Solo cove/edoc (llaves únicas);
partida y nativos quedan fuera. Correr DESPUÉS del backfill estricto.
- Comando `dedup_documents` para limpiar documentos duplicados legados (misma entidad +
mismo tipo): conserva el más reciente con archivo válido en storage, borra el resto
(archivo MinIO si no lo referencia otra fila + fila + ajuste de cuota), `--dry-run`,