61 lines
3.1 KiB
Markdown
61 lines
3.1 KiB
Markdown
# 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`.
|