Skip to content

feat(juridico/contratos): tabla cruda landing del reporte de Trato + doc del modulo

Alan Amox requested to merge juridico_corp into qa

Arranque del modulo Contratos (portal_juridico, sub-area Corporativo). La data nace en la plataforma Trato y llega via un RPA externo (no vive en este proyecto) que descarga el reporte Excel y lo deja en un Sheet; nosotros lo sincronizaremos a db_juridico por upsert (no truncate).

Paso 1 (solo la tabla, sin router/frontend/RBAC):

  • Nueva tabla contrato_trato_raw en ensure_juridico_schema (DDL idempotente, SQL crudo). Espejo 1:1 del Excel: 33 columnas de origen en snake_case, todas TEXT por fidelidad y robustez del sync (el origen trae N/A, vacios y comillas/espacios). El tipado y la normalizacion van en un paso 2.
  • Plomeria de sync: id BIGSERIAL PK, row_hash VARCHAR(64) NOT NULL con UNIQUE como ancla del upsert (SHA-256 del contenido de la fila), lote_sync e fecha_sync. Indices en id_trato, lote_sync, estatus.

El reporte es denormalizado (multi-fila por contrato: documento + participante + variable clave-valor de la plantilla), sin clave natural unica por fila; de ahi el hash de contenido para el upsert idempotente.

Validado: py_compile OK y verificado en vivo en el contenedor (la tabla se crea con 37 columnas, PK, unique de row_hash y los 3 indices).

Doc del modulo en portal_juridico/docs/CONTRATOS.md (origen, estructura del Excel, tabla cruda, diseno del sync por upsert y pendientes del paso 2).

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

Merge request reports

Loading