Reemplaza el matching fragil por nombre de archivo con FK reales:
- 3 FK nullables (CASCADE) en Document; resolucion central en save() por
document_type + nombre (core.document_links), cubre toda ruta de creacion
incluida la ingesta del microservicio; set explicito en create_vu_record.
- Comando backfill_document_links (idempotente, dry-run) para filas existentes.
- Lectura/descarga/borrado SIEMPRE por la FK (id); el nombre solo ESTABLECE la
FK en save()/backfill. Prefetch con select_related(pedimento, fuente) sin N+1.
- Migraciones: 0004 (campos), 0005 (indices CONCURRENTLY IF NOT EXISTS, idempotente
via SeparateDatabaseAndState), 0006 (ANALYZE document para estadisticas del planner).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Frontera (_|.|$) tras vu_PT_{app}_{numero} para cubrir los 3 formatos sin
confundir partida 1 con 11/100. Fuente unica en core/partida_docs.py, reusada
por get_documentos, handlers de borrado/descarga y fix_partidas_error.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
✨ Nuevas funcionalidades:
- Corregir nomenclatura en bulk-create de pedimentos usando nombres exactos de archivos
- Endpoint bulk-upload para cargar múltiples documentos a un pedimento existente
- Soporte completo para archivos RAR y ZIP con manejo robusto
🔧 Mejoras técnicas bulk-create:
- Subdirectorios usan nombre exacto del archivo sin extensión (ej: 24-01-3420-1234567/)
- Resolución del problema de validación de nomenclatura inválida
- Mensajes de error mejorados con archivo original específico
- Procesamiento optimizado de múltiples archivos ZIP/RAR simultáneos
🔧 Mejoras técnicas bulk-upload:
- Organización heredada del pedimento en lugar del usuario
- Validación de cuotas de almacenamiento por organización
- Manejo de errores por archivo individual
- Soporte para múltiples tipos de archivo
📦 Dependencias:
- Agregado rarfile==4.1 para soporte completo de archivos RAR
🚀 Endpoints listos para producción:
- POST /api/customs/pedimentos/bulk-create/ (crear pedimentos + documentos)
- POST /api/record/documents/bulk-upload/ (subir documentos a pedimento existente)
- Agregar endpoint bulk-delete para pedimentos en customs/views.py
- Agregar endpoint bulk-delete para documentos en record/views.py
- Incluir validaciones de seguridad y filtros por organización
- Manejar gestión automática de almacenamiento en documentos
- Agregar respuestas detalladas con conteo y errores