chore: import DH V2 D5.6.4 production baseline
This commit is contained in:
@@ -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`.
|
||||
Reference in New Issue
Block a user