# Quickstart — Spec 008: Port version2 → develop_eneon

Guía rápida para desarrolladores que implementan el port.

---

## 1. Prerrequisitos

- PHP 8.2+, Composer, Node 18+
- MySQL con BD `eneon` (datos de desarrollo, no producción)
- Acceso a credenciales ADX/MuleSoft (sandbox) o mocks
- Ramas locales: `develop_eneon`, `version2`

---

## 2. Arranque del feature branch

```bash
git fetch origin
git checkout develop_eneon
git pull origin develop_eneon
git checkout -b feature/008-port-version2
```

**Importante:** la rama base es siempre `develop_eneon`, no `version2`.

---

## 3. Base de datos

### 3.1 Backup (obligatorio)

Hacer backup de `T_Propuesta_Comercial_CUPs` y verificar tablas historial CUPS existentes.

### 3.2 Scripts SQL

Ejecutar en orden (solo tras aprobación explícita):

```sql
-- 1. Ventana ADX (3 columnas)
SOURCE bdscripts/T_Propuesta_Comercial_CUPs_ventana_adx.sql;

-- 2. Servicios contrato (7 columnas)
SOURCE bdscripts/T_Propuesta_Comercial_CUPs_servicios_contrato.sql;
```

### 3.3 Verificación

```sql
DESCRIBE T_Propuesta_Comercial_CUPs;
-- Debe incluir: nombretarifa, productCode, version,
-- cuotaFija, proteccionPagos, servicioBateriaVirtual, servicioBasico,
-- servicioElectrodomestico, servicioPremium, servicioUrgencias

SELECT CodCom, RazSocCom, Servicio_Integracion
FROM T_Comercializadora
WHERE EstCom = 1;
-- Debe haber filas con 'audax' y 'adx'
```

---

## 4. Variables de entorno

Añadir al `.env` local (valores de sandbox):

```env
# ADX SIPS
ENEON_ADX_SIPS_CONSUMO_URL=https://...
ENEON_ADX_SIPS_CLIENT_ID=...
ENEON_ADX_SIPS_CLIENT_SECRET=...
ENEON_ADX_SIPS_CORRELATION_ID=
ENEON_ADX_SIPS_SOURCE=SALESFORCE
ENEON_ADX_SIPS_COUNTRY=ES
ENEON_ADX_SIPS_AUTH_MODE=headers

# ADX Tarifas (MuleSoft MostrarTarifas)
ENEON_ADX_TARIFAS_URL=https://...

# AUDAX (existentes — verificar)
ENNERSPAIN_CONSUMO_URL=https://...
```

Tras cambios:

```bash
php artisan config:clear
```

---

## 5. Extraer código desde `version2`

Sin cambiar a la rama version2 permanentemente:

```bash
# Archivo nuevo (ejemplo)
git show version2:app/Services/Adx/AdxHttpClient.php > app/Services/Adx/AdxHttpClient.php

# Ver diff de un archivo modificado
git diff develop_eneon..version2 -- app/Http/Controllers/SipsController.php
```

**Regla:** para archivos que existen en develop y version2, editar la copia develop e incorporar solo hunks funcionales.

---

## 6. Frontend

```bash
npm install
npm run dev
```

Rutas clave para probar:

| Ruta | Qué validar |
|------|-------------|
| `/sips` | Selector comercializadora, paneles AUDAX/ADX |
| Contrato multipunto | Modal ventanas, columnas servicios |
| Edición contrato Tip 1/2 | Prompt representante, OKCom |

---

## 7. Diagnóstico integraciones ADX

```bash
php artisan sips:adx-debug
php artisan sips:adx-debug --test

php artisan tarifas:adx-debug
php artisan tarifas:adx-debug --test --tarifa=2.0TD --subtarifa=T0
```

Si `--test` falla, probar `ENEON_ADX_SIPS_AUTH_MODE=basic` o `query`.

---

## 8. Checklist pre-PR

- [ ] Partí de `develop_eneon`, no hice merge de `version2`
- [ ] Historial CUPS sigue funcionando (`EditarCups`, `EditarPunto`)
- [ ] `validacionSips.ts` y `EneonTabs` presentes y usados
- [ ] Vistas tarjetas de maestros intactas
- [ ] Scripts SQL ejecutados y columnas verificadas
- [ ] `.env.example` actualizado (sin secretos)
- [ ] Revisión contra [constraints-develop-eneon.md](./constraints-develop-eneon.md)

---

## 9. Orden de implementación

Seguir fases en [plan.md](./plan.md):

1. PR-1 → Infraestructura ADX backend  
2. PR-2 + PR-3 (+ PR-4 en paralelo) → SIPS, tarifas, canal  
3. PR-5 → Representante legal  
4. PR-6 → Regresión develop  

Detalle tarea a tarea: generar con `/speckit-tasks`.

---

## 10. Referencias rápidas

| Necesidad | Documento |
|-----------|-----------|
| Qué portar / qué no | [spec.md](./spec.md) §2-§3 |
| Contratos API | [contracts/api-adx-integracion.md](./contracts/api-adx-integracion.md) |
| Columnas BD | [data-model.md](./data-model.md) |
| Archivos prohibidos de tocar | [constraints-develop-eneon.md](./constraints-develop-eneon.md) |
| Diff ramas | [research.md](./research.md) |
