chore: import DH V2 D5.6.4 production baseline

This commit is contained in:
DH V2
2026-09-05 10:12:35 -03:00
commit 82213e72f5
757 changed files with 84218 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
# Fase D5.3.7.2 — Plan relacional normalizado
Versión: `0.19.3-7.2`
## Objetivo
Evitar que una importación replique como texto datos maestros que se repiten en cientos de filas. El perfil territorial de Mendoza pasa de una lectura por fila a un plan compuesto por entidades únicas y relaciones explícitas.
## Modelo aplicado a `Tablas de yacimiento.xlsx`
Cada fila fuente conserva su trazabilidad, pero el plan deduplica y separa:
- **Departamentos**: catálogo normalizado `administrative_departments`; un Departamento se crea una sola vez.
- **Organizaciones / Operadoras**: activos de rol COMPANY, con clave canónica que normaliza siglas con puntos (`E.M.E.S.A.``emesa`, `S.R.L.``srl`) sin fusionar nombres jurídicos semánticamente distintos.
- **Áreas**: una entidad por Área.
- **Yacimientos**: una entidad contextual por `Área + Yacimiento`; el nombre de Yacimiento no es clave global.
- **Área ↔ Departamento**: relación histórica explícita en `area_department_relations`.
- **Área ↔ Operadora**: relación histórica existente `area_company_relations`, rol `OPERATOR`.
- **Tipo de derecho**: se normaliza al enum jurídico ya existente (`EXPLOITATION_CONCESSION`, `EXPLORATION_PERMIT`, `TRANSPORT_CONCESSION`, `OTHER`), sin duplicar un catálogo paralelo.
- **Derecho / concesión**: entidad jurídica `area_legal_rights`, inicialmente `PENDING` cuando la fuente sólo informa tipo y Área pero no instrumento o vigencia.
- **Derecho ↔ Organización**: relación `area_legal_right_organizations` con rol `OPERATOR`. No se infiere titularidad, participación ni tenencia.
`Sin Empresa Operadora` sigue representando ausencia explícita y nunca se convierte en una Organización.
## Referencia sobre el archivo real
Sobre un Maestro vacío, el archivo de 230 filas produce conceptualmente:
- 7 Departamentos únicos;
- 12 Organizaciones reales (13 valores fuente menos `Sin Empresa Operadora`);
- 64 Áreas;
- 64 relaciones Área ↔ Departamento;
- 230 pares contextuales Área + Yacimiento;
- 47 relaciones Área ↔ Operadora;
- 64 derechos normalizados por Área + tipo;
- 47 relaciones Derecho ↔ Organización.
Total de referencia: **535 operaciones de plan**, antes de descontar coincidencias que ya existan en el Maestro.
El archivo contiene 26 filas con `Sin Empresa Operadora`; esas filas no generan una empresa ficticia.
## Vista del plan
El frontend agrupa las operaciones en:
1. Territorio.
2. Organizaciones.
3. Marco jurídico.
4. Inventario técnico.
Cada clase de entidad muestra Crear / Coincidir / Revisar / Ignorar / Total y dispone de `Ver detalle`, paginado, para revisar las entidades únicas y sus filas fuente antes de aplicar.
## Seguridad
- El plan se calcula antes de escribir el Maestro.
- Las revisiones bloquean la aplicación.
- La aplicación sigue siendo transaccional y validada por hash.
- Los objetos relacionales se revalidan antes de aplicar.
- El rollback es lógico: finaliza relaciones, revoca derechos creados por el lote, inactiva Departamentos creados por el lote y no ejecuta `DELETE FROM assets`.
- El usuario debe validar visualmente el plan real antes de pulsar `APLICAR`.