# Research — Diff `version2` vs `develop_eneon`

## Resumen ejecutivo

Las ramas divergieron desde `f4aaf9de`. **`version2`** aporta integraciones **ADX/Salesforce** (SIPS + tarifas), **canal/comercial** en integraciones, **representante legal** en TipProCom 1/2 y **servicios de contrato** en CUPS. **`develop_eneon`** aporta **historial CUPS**, **accesibilidad/UX** avanzada, **vistas tarjetas**, **validaciones de formulario**, **CI/CD** y **plantillas PDF** en repo.

**468 archivos** difieren en el diff completo; ~**25 archivos nuevos** de código de aplicación (excl. vendor, storage, build).

---

## Commits exclusivos

### En `version2` (no en `develop_eneon`) — 9 commits

| SHA | Mensaje |
|-----|---------|
| `d460ae77` | Update CargaGlobalAudax.php |
| `143da710` | AJUSTES FINALES PARA MOSTRAR TARIFAS PARTE ELECTRICIDAD |
| `002e62b6` | Update AdxTarifasService.php |
| `85666164` | preajustes de mostrar Tarifas Adx SalesForces BETA 1,0 |
| `3963b3ff` | tooltips para nuevas columnas |
| `b35d8efc` | ajustes de nuevas columnas para el nuevo servicio de contratos de salesforces |
| `feada276` | segunda parte de sips |
| `d9440169` | PORIMEROA PASOS PARA MODULO DE SIPS |
| `c2cb4142` | nuevas mejoras para representante legal en tipo 1 y 2 |
| `72522fdb` | ajustes nuevos para tramitaciones okcom y documentaciones por canal |

### En `develop_eneon` (no en `version2`) — 12 commits

| SHA | Mensaje |
|-----|---------|
| `941516eb` | Create .gitignore |
| `4efab33a` | Alinenado experiencia de usuarios UI/UX |
| `73a60b51` | Mejoras en experiencia de usuario |
| `818cebf8` | Ajustes de usabilidad y accesibilida web |
| `ece8e663` | Ajustes solicitados por le cliente, bugs formacion de direccion... |
| `155f07aa` | Librerias para mejorar experiencia de usuario |
| `ed07337e` | Nuevos ajustes para plantillas, se alinean los margenes |
| `eadd7799` | Ajuste plantilla |
| `4fd8c5cf` | Ajustes |
| `23ac029a` / `24fdf4eb` | Ajustes deploy |
| `0a3f7f50` | Activar gitactions para despliegue continuo |

**Conclusión:** son líneas de evolución paralelas. El port debe tomar **develop_eneon como base** e **insertar** bloques funcionales de version2.

---

## Inventario de archivos nuevos en `version2` (código aplicación)

```
app/Console/Commands/SipsAdxDebugCommand.php
app/Console/Commands/TarifasAdxDebugCommand.php
app/DataTransferObjects/AdxTarifaDto.php
app/Services/Adx/AdxHttpClient.php
app/Services/Sips/AdxSipsService.php
app/Services/Sips/SipsProviderRegistry.php
app/Services/Tarifas/AdxTarifasService.php
bdscripts/T_Propuesta_Comercial_CUPs_servicios_contrato.sql
bdscripts/T_Propuesta_Comercial_CUPs_ventana_adx.sql
config/sips.php
resources/js/.../ComponentesComunes/ServiciosContratoFields.tsx
resources/js/.../ComponentesComunes/serviciosContratoConfig.ts
resources/js/.../ComponentesComunes/ventanaPreciosUtils.ts
resources/js/.../MultiClienteMultiPunto/components/TabNavigator.tsx  ← no cableado en página principal
resources/js/.../promptComercialCanal.ts
resources/js/.../promptCondicionesParticulares.ts
resources/js/Pages/Eneon/Sips/components/** (7 archivos)
resources/js/Pages/Eneon/Sips/config/resolveProvider.ts
resources/js/Pages/Eneon/Sips/hooks/useSipsConsulta.ts
resources/js/Pages/Eneon/Sips/types.ts
```

---

## Archivos modificados críticos (M)

### Backend

| Archivo | Naturaleza del cambio |
|---------|----------------------|
| `SipsController.php` | Multi-proveedor, `cod_com`, registry |
| `IntegracionController.php` | `CodConCli`, tarifas ADX |
| `ContratosController.php` | OKCom canal/comercial, representantes legales |
| `AnexoProductoController.php` | `CodConCli` en PDF condiciones particulares |
| `IntegracionTraits.php` | Tarifas ADX, canal/comercial, representante tramitación |
| `ContratoTraits.php` | Servicios contrato, ventana ADX, representantes, documentContract |
| `CargaGlobalAudax.php` | Tarifas gas RL.1–RL.6 |
| `AuxiliarCondicionesParticularesTraits.php` | Representante legal PDF |
| `PropuestaComercialCups.php` | Nuevos campos fillable |
| Jobs OKCom / Documento / GenerarContrato | Props `comercial`, `canal`, `codConCli` |
| `config/services.php` | Bloque ADX SIPS + mostrarTarifas |

### Frontend contratos

| Archivo | Naturaleza del cambio |
|---------|----------------------|
| `ModalPrecios.tsx` | Modal ADX XL, detección provider |
| `CupsElectricosTable.tsx` / `CupsGasTable.tsx` | Columnas servicios contrato + ventana ADX |
| `Utils.ts` / `useGenerarContratosCondicionesParticularesPDF.ts` | Prompts, CodConCli |
| `EditarContrato.tsx` | promptCondicionesParticulares |
| Hooks CUPS contratos | Servicios contrato en bulk load |
| `Interfaces.ts` / `constants.ts` | Tipos servicios y ventana |

### Frontend SIPS

| Archivo | Naturaleza del cambio |
|---------|----------------------|
| `Sips/Index.tsx` | Orquestador multi-proveedor |
| `Sips.module.css` | Estilos paneles |
| Eliminado: `validacionSips.ts` | **NO replicar eliminación en develop** |

---

## Archivos eliminados en `version2` que develop conserva (muestra)

Categorías principales (~80+ archivos de aplicación):

1. **Historial CUPS** — controller, models, concerns, service, migration, UI tabs, tests
2. **Shared accesibilidad** — `EneonTabs/*`, `estilosFocoAccesible`, tokens SCSS
3. **Contratos Shared** — barra progreso, typeahead limpiar, validación formulario
4. **UniClienteUniPunto componentes** — 10+ subcomponentes refactor
5. **Vistas tarjetas** — Clientes, Contactos, Comerciales, Contratos, CUPS, Puntos
6. **Tests** — CupsHistorial*, AuxiliarSepa, RegistrarHistorialCups

Ver inventario completo en [constraints-develop-eneon.md](./constraints-develop-eneon.md).

---

## Configuración de entorno (version2)

### ADX SIPS + Tarifas (compartidas)

| Variable | Uso |
|----------|-----|
| `ENEON_ADX_SIPS_CONSUMO_URL` | Endpoint consulta SIPS ADX |
| `ENEON_ADX_TARIFAS_URL` | Endpoint MostrarTarifas MuleSoft |
| `ENEON_ADX_SIPS_CLIENT_ID` | Auth Salesforce |
| `ENEON_ADX_SIPS_CLIENT_SECRET` | Auth Salesforce |
| `ENEON_ADX_SIPS_CORRELATION_ID` | Opcional; UUID si vacío |
| `ENEON_ADX_SIPS_SOURCE` | Default `SALESFORCE` |
| `ENEON_ADX_SIPS_COUNTRY` | Default `ES` |
| `ENEON_ADX_SIPS_AUTH_MODE` | `headers` \| `basic` \| `query` |

### SIPS legacy AUDAX (sin cambio)

| Variable | Uso |
|----------|-----|
| `ENNERSPAIN_CONSUMO_URL` | API consumo Audax |
| `ENEON_AUDAX_LOGIN_*` | Login vía IntegracionTraits |

### BD (routing proveedor)

Columna **`T_Comercializadora.Servicio_Integracion`**: valores `audax` o `adx` (case-insensitive). Debe existir y estar poblada; no hay migración Laravel en version2.

### localStorage UX

| Clave | Contenido |
|-------|-----------|
| `eneon_comercial` | Último comercial indicado |
| `eneon_canal` | Último canal indicado |

---

## Flujos de datos (diagrama)

```mermaid
flowchart TB
    subgraph version2_new [Nuevo en version2]
        SIPS[SIPS multi-proveedor]
        TAR[Tarifas ADX MuleSoft]
        CAN[Canal + Comercial]
        REP[Representante legal Tip 1/2]
        SVC[7 Servicios contrato CUPS]
    end

    subgraph develop_keep [Conservar de develop_eneon]
        HIST[Historial CUPS]
        A11Y[Accesibilidad + EneonTabs]
        CARDS[Vistas tarjetas]
        VAL[Validación formularios]
        CI[GitHub Actions deploy]
    end

    BASE[develop_eneon base] --> version2_new
    BASE --> develop_keep
```

---

## Breaking changes detectados en version2

1. **`POST sips.consumo`** exige `cod_com`; hooks de contratos en ambas ramas envían solo `{ cups, tipo }` → requiere compatibilidad al portar.
2. **`RepresentanteLegalSection`** en version2 elimina props accesibilidad de develop → fusionar, no reemplazar.
3. **Eliminación masiva de tests** en version2 → no portar.

---

## Estimación de esfuerzo por épica

| Épica | Complejidad | Archivos aprox. |
|-------|-------------|-----------------|
| A — SIPS ADX | Alta | ~20 |
| B — Tarifas + servicios contrato | Alta | ~25 |
| C — Canal/comercial | Media | ~15 |
| D — Representante legal | Media | ~12 |
| Compatibilidad + regresión develop | Alta | transversal |

**Orden recomendado:** Fase backend ADX → BD → traits/jobs → frontend utilidades → UI SIPS → UI contratos → prompts → regresión develop.
