# SECMCA API Plugin - Changelog v1.4.0

**Fecha:** 24 de enero de 2026  
**Archivo:** `secmca-api-v1.4.0.zip`

---

## 🎯 Resumen de Cambios

Esta versión implementa la **Etapa 3** del proceso de migración: **Limpieza completa de URLs y eliminación de lógica de producción/testing**.

---

## ✨ Cambios Principales

### **Etapa 3: Limpieza de URLs** ✅ COMPLETADA

#### 1. **URL Base Unificada**
- ✅ Eliminada dependencia de Carbon Fields para URL base
- ✅ URL base ahora hardcodeada: `http://192.168.100.137:8081/simafir_api/ws/`
- ✅ Todas las peticiones usan la misma URL base

#### 2. **Funciones Eliminadas**
- ❌ `get_dynamic_base_url()` - ELIMINADA
- ❌ `get_dynamic_url_data()` - ELIMINADA
- ❌ Lógica de cambio de IP según `is_user_logged_in()` - ELIMINADA

#### 3. **URLs Actualizadas**

**SIMAFIR/SECMCA:**
- Antes: `192.168.100.133:8080` (producción) / `192.168.100.137:8080` (desarrollo)
- Ahora: `192.168.100.137:8081/simafir_api/ws/public/v1/`

**EMFA:**
- Antes: `192.168.100.133:8080/simafir_api/ws/emfa/`
- Ahora: `192.168.100.137:8081/simafir_api/ws/public/v1/emfa/`
- Endpoints actualizados:
  - `obtenerDatos/cuadroBalance/BALANCE_MATRIZ_BC/`
  - `obtenerDatos/cuadroBalance/BALANCE_MATRIZ_OSD/`
  - `obtenerDatosRecientes`

**ESEA:**
- Antes: `192.168.100.133:8080/simafir_api/ws/esea/`
- Ahora: `192.168.100.137:8081/simafir_api/ws/esea/`

**EFPA:**
- ✅ Ya usaba las URLs correctas (.137:8081)
- Sin cambios necesarios

---

## 🔧 Archivos Modificados

### 1. **`inc/api.php`**
   - Línea 20: URL base hardcodeada
   - Líneas 31-76: Funciones dinámicas eliminadas
   - Línea 250+: Simplificado `get_all_data1()`
   - Líneas 757, 781: Actualizadas `emfa_allData_matriz()` y `emfa_allData_matriz2()`
   - Línea 884: Actualizado `esea_get_available()`
   - Todas las referencias a `get_dynamic_base_url()` → `$this->url_base`

### 2. **`secmca-api.php`**
   - Versión: `1.3.0` → `1.4.0`
   - Version constant: `2026-01` → `2026-01-etapa3`
   - Líneas 221, 609: Cliente Guzzle unificado (eliminado `is_user_logged_in()`)
   - Nuevo base_uri: `.137:8081/simafir_api/ws/public/v1/`

---

## 📊 Impacto de los Cambios

### ✅ **Beneficios:**
1. **Simplicidad**: Código más limpio y mantenible
2. **Consistencia**: Todos usan la misma URL base
3. **Seguridad**: Protección por imagen de mantenimiento (v1.3.0)
4. **Performance**: Menos condicionales = código más rápido

### ⚠️ **Consideraciones:**
- **Usuarios logueados**: Ahora usan los mismos endpoints que usuarios no logueados
- **La imagen de mantenimiento sigue protegiendo** a usuarios no logueados (v1.3.0)
- **URLs antiguas (.133:8080) ya no se usan**

---

## 📦 Instalación

### Pasos para instalar en producción:

1. **Backup del plugin actual:**
   ```bash
   cd /path/to/wordpress/wp-content/plugins/
   cp -r secmca-api secmca-api-backup-$(date +%Y%m%d)
   ```

2. **Desactivar el plugin actual:**
   - Ir a WordPress Admin → Plugins
   - Desactivar "secmca-api"

3. **Reemplazar archivos:**
   - Eliminar la carpeta `secmca-api` actual
   - Descomprimir `secmca-api-v1.4.0.zip`
   - Subir la carpeta `secmca-api` al directorio de plugins

4. **Reactivar el plugin:**
   - Ir a WordPress Admin → Plugins
   - Activar "secmca-api"

5. **Verificar:**
   - Como usuario NO logueado: Verificar imagen de mantenimiento ✓
   - Como usuario logueado: Verificar que todo funciona con nuevas URLs ✓

---

## ⚠️ Notas Importantes

### ✅ Lo que SÍ está incluido en esta versión:
- **Etapa 1 y 2** (v1.3.0): Imagen de mantenimiento para usuarios no logueados
- **Etapa 3** (v1.4.0): Limpieza completa de URLs y lógica de producción/testing
- URL base unificada: `http://192.168.100.137:8081/simafir_api/ws/`
- Eliminación de condicionales de IP por usuario

### ⏳ Lo que NO está incluido (próximas versiones):
- **Etapa 4**: Migración completa a nuevos endpoints por tema:
  - SECMCA: `/public/v1/criterios/{TEMA}` y `/public/v1/obtenerDatos/...`
  - EMFA: `/public/v1/emfa/criterios/{TEMA}` y `/public/v1/emfa/obtenerDatos/...`
  - ESEA: `/public/v1/esea/criterios/{TEMA}` y `/public/v1/esea/obtenerDatos/...`
  - EFPA: Ya usa endpoints correctos
  - Tipo de Cambio: `/public/v1/tipoCambioExterno/...`

---

## 🔄 Próximos Pasos

### **Etapa 4** (Futuras versiones):
Migración gradual a estructura de endpoints documentada:

#### SECMCA/SIMAFIR:
- Criterios: `/public/v1/criterios/{NOMBRE_TEMA}`
- Datos: `/public/v1/obtenerDatos/porCriterio/...`

#### EMFA:
- Criterios: `/public/v1/emfa/criterios/{TEMA}`
- Por cuadro: `/public/v1/emfa/obtenerDatos/{cuadro}/{pais}`
- Por variable: `/public/v1/emfa/obtenerDatos/{cuadro}/{variable}/{pais}`

#### ESEA:
- Criterios: `/public/v1/esea/criterios/{TEMA}`
- Por formulario: `/public/v1/esea/obtenerDatos/{formulario}/{pais}`
- Por variable: `/public/v1/esea/obtenerDatos/{formulario}/{variable}/{pais}`

#### Tipo de Cambio:
- `/public/v1/tipoCambioExterno/obtenerDatos/{variable}/{pais}`

---

## 🐛 Testing Recomendado

Antes de pasar a producción, verificar:

1. **SIMAFIR**: ✓ Listado de temas, parámetros y gráficos
2. **EMFA**: ✓ Cuadros de balance BC y OSD
3. **ESEA**: ✓ Formularios de sector externo
4. **EFPA**: ✓ Estadísticas de finanzas públicas
5. **Login/Logout**: ✓ Imagen de mantenimiento para no logueados

---

## 📄 Cambios desde v1.3.0

| Característica | v1.3.0 | v1.4.0 |
|---------------|--------|--------|
| Imagen mantenimiento | ✅ | ✅ |
| URLs dinámicas | ❌ Múltiples IPs | ✅ URL única |
| URL Base | Variable | `137:8081` |
| Lógica is_user_logged_in() para URLs | ✅ Presente | ❌ Eliminada |
| Funciones dinámicas | ✅ Presente | ❌ Eliminadas |
| Código más limpio | ⚠️ | ✅ |

---

**Desarrollado por:** Codeskill.io  
**Versión anterior:** 1.3.0  
**Versión actual:** 1.4.0  
**Compatible con:** WordPress 5.x+, PHP 8.x  
**Fecha de lanzamiento:** 24 de enero de 2026
