# 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`.