# FASE 4: ANALISIS DE DEPENDENCIAS DE ARCHIVOS
## Trading PlatformIA Trading Platform

**Fecha:** 2026-01-07
**Objetivo:** Mapear dependencias entre archivos a modificar para determinar orden correcto de ejecucion
**Estado:** COMPLETADO

---

## 1. GRAFO DE DEPENDENCIAS

### 1.1 Diagrama de Dependencias (ASCII)

```
NIVEL 0 - CONFIGURACION BASE (Sin dependencias)
┌─────────────────────────────────────────────────────────────────┐
│  docker-compose.yml                                             │
│  ├── Define puertos, redes, volumenes                           │
│  └── Variables de entorno canonicas                             │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             ▼
NIVEL 1 - ARCHIVOS .ENV (Dependen de docker-compose)
┌─────────────────────────────────────────────────────────────────┐
│  apps/backend/.env.example                                      │
│  apps/frontend/.env.example                                     │
│  apps/ml-engine/.env                                            │
│  apps/data-service/.env                                         │
│  apps/llm-agent/.env                                            │
│  apps/trading-agents/.env                                       │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             ▼
NIVEL 2 - CONEXIONES BD (Dependen de .env)
┌─────────────────────────────────────────────────────────────────┐
│  apps/ml-engine/config/database.yaml                            │
│  apps/backend/src/shared/constants/database.constants.ts        │
│  apps/data-service/src/config/database.py                       │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             ▼
NIVEL 3 - SERVICIOS DE DATOS (Dependen de BD config)
┌─────────────────────────────────────────────────────────────────┐
│  apps/data-service/src/services/polygon_client.py               │
│  apps/data-service/src/services/asset_updater.py                │
│  apps/data-service/src/services/scheduler.py                    │
│  apps/data-service/src/api/main.py                              │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             ▼
NIVEL 4 - ML ENGINE (Depende de Data Service)
┌─────────────────────────────────────────────────────────────────┐
│  apps/ml-engine/src/data/data_service_client.py                 │
│  apps/ml-engine/src/services/prediction_service.py              │
│  apps/ml-engine/src/api/main.py                                 │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             ▼
NIVEL 5 - LLM AGENT (Depende de ML Engine)
┌─────────────────────────────────────────────────────────────────┐
│  apps/llm-agent/src/services/ml_analyzer.py                     │
│  apps/llm-agent/src/services/mcp_orchestrator.py                │
│  apps/llm-agent/src/api/routes.py                               │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             ▼
NIVEL 6 - BACKEND API (Depende de LLM/ML)
┌─────────────────────────────────────────────────────────────────┐
│  apps/backend/src/shared/clients/ml-engine.client.ts            │
│  apps/backend/src/shared/clients/llm-agent.client.ts            │
│  apps/backend/src/modules/ml/services/                          │
│  apps/backend/src/modules/llm/services/                         │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             ▼
NIVEL 7 - FRONTEND (Depende de Backend, ML, LLM)
┌─────────────────────────────────────────────────────────────────┐
│  apps/frontend/src/services/trading.service.ts                  │
│  apps/frontend/src/services/mlService.ts                        │
│  apps/frontend/src/services/llmAgentService.ts                  │
│  apps/frontend/src/services/websocket.service.ts                │
│  apps/frontend/src/stores/                                      │
│  apps/frontend/src/modules/                                     │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             ▼
NIVEL 8 - DOCUMENTACION (Depende de todo lo anterior)
┌─────────────────────────────────────────────────────────────────┐
│  docs/api-contracts/openapi/*.yaml                              │
│  docs/api-contracts/SERVICE-INTEGRATION.md                      │
│  docs/00-vision-general/ARQUITECTURA-GENERAL.md                 │
│  docs/90-transversal/inventarios/DATABASE_INVENTORY.yml         │
└─────────────────────────────────────────────────────────────────┘
```

---

## 2. MATRIZ DE DEPENDENCIAS DETALLADA

### 2.1 Nivel 0 - Configuracion Base

| Archivo | Tipo | Dependencias | Afecta A |
|---------|------|--------------|----------|
| `docker-compose.yml` | Config | NINGUNA | Todos los servicios |

**Contenido Critico:**
- Puertos de servicios
- Variables de entorno
- Redes Docker
- Volumenes persistentes

---

### 2.2 Nivel 1 - Variables de Entorno

| Archivo | Depende De | Afecta A | Variables Criticas |
|---------|------------|----------|-------------------|
| `apps/backend/.env.example` | docker-compose | Backend, DB clients | DB_HOST, DB_PORT, ML_URL, LLM_URL |
| `apps/frontend/.env.example` | docker-compose | Frontend services | VITE_API_URL, VITE_ML_URL, VITE_WS_URL |
| `apps/ml-engine/.env` | docker-compose | ML services, DB | DATABASE_URL, DATA_SERVICE_URL |
| `apps/data-service/.env` | docker-compose | Polygon client, DB | POLYGON_API_KEY, DATABASE_URL |
| `apps/llm-agent/.env` | docker-compose | ML client, MCP | ML_ENGINE_URL, MCP_MT4_URL |
| `apps/trading-agents/.env` | docker-compose | Exchange clients | BINANCE_API_KEY, ML_ENGINE_URL |

---

### 2.3 Nivel 2 - Configuracion de Base de Datos

| Archivo | Depende De | Afecta A | Config Critica |
|---------|------------|----------|----------------|
| `apps/ml-engine/config/database.yaml` | .env | Data access | host, port, database, pool |
| `apps/backend/src/shared/constants/database.constants.ts` | .env | DB queries | Schemas, table names |
| `apps/data-service/src/config/database.py` | .env | Data sync | Connection string |

---

### 2.4 Nivel 3 - Servicios de Data Service

| Archivo | Depende De | Afecta A | Funcion |
|---------|------------|----------|---------|
| `src/services/polygon_client.py` | .env (API_KEY) | asset_updater | API calls |
| `src/services/asset_updater.py` | polygon_client, DB config | scheduler | Update data |
| `src/services/scheduler.py` | asset_updater | API main | Trigger updates |
| `src/api/main.py` | Todos los services | ML Engine, Backend | Expose endpoints |

---

### 2.5 Nivel 4 - ML Engine Services

| Archivo | Depende De | Afecta A | Funcion |
|---------|------------|----------|---------|
| `src/data/data_service_client.py` | Data Service API | prediction_service | Get market data |
| `src/services/prediction_service.py` | data_client, models | api/main | Core predictions |
| `src/api/main.py` | prediction_service | LLM Agent, Backend | Expose endpoints |

---

### 2.6 Nivel 5 - LLM Agent Services

| Archivo | Depende De | Afecta A | Funcion |
|---------|------------|----------|---------|
| `src/services/ml_analyzer.py` | ML Engine API | routes | Get ML analysis |
| `src/services/mcp_orchestrator.py` | MCP connectors | routes | Execute trades |
| `src/api/routes.py` | ml_analyzer, mcp_orch | Backend, Frontend | Expose endpoints |

---

### 2.7 Nivel 6 - Backend Clients

| Archivo | Depende De | Afecta A | Funcion |
|---------|------------|----------|---------|
| `src/shared/clients/ml-engine.client.ts` | ML Engine API | modules/ml | Proxy ML |
| `src/shared/clients/llm-agent.client.ts` | LLM Agent API | modules/llm | Proxy LLM |
| `src/modules/ml/services/*` | ml-engine.client | routes | ML services |
| `src/modules/llm/services/*` | llm-agent.client | routes | LLM services |

---

### 2.8 Nivel 7 - Frontend Services

| Archivo | Depende De | Afecta A | Funcion |
|---------|------------|----------|---------|
| `src/services/trading.service.ts` | Backend API | stores, components | Market data |
| `src/services/mlService.ts` | ML Engine API | stores, components | ML signals |
| `src/services/llmAgentService.ts` | LLM Agent API | stores, components | Predictions |
| `src/services/websocket.service.ts` | WS endpoints | stores | Real-time |
| `src/stores/*.ts` | services | components | State mgmt |
| `src/modules/*` | stores | UI | Components |

---

### 2.9 Nivel 8 - Documentacion

| Archivo | Depende De | Proposito |
|---------|------------|-----------|
| `docs/api-contracts/openapi/*.yaml` | APIs finales | Documentar endpoints |
| `docs/api-contracts/SERVICE-INTEGRATION.md` | Todos los servicios | Guia integracion |
| `docs/00-vision-general/ARQUITECTURA-GENERAL.md` | Arquitectura final | Vision general |
| `docs/90-transversal/inventarios/DATABASE_INVENTORY.yml` | BD final | Inventario BD |

---

## 3. ORDEN DE MODIFICACION RECOMENDADO

### 3.1 Secuencia de Ejecucion

```
PASO 1: docker-compose.yml
    └── Verificar puertos y variables canonicas

PASO 2: Todos los .env (paralelo)
    ├── apps/backend/.env.example
    ├── apps/frontend/.env.example
    ├── apps/ml-engine/.env
    ├── apps/data-service/.env
    ├── apps/llm-agent/.env (crear)
    └── apps/trading-agents/.env (crear)

PASO 3: Config de BD (paralelo)
    ├── apps/ml-engine/config/database.yaml
    ├── apps/backend/src/shared/constants/database.constants.ts
    └── apps/data-service/src/config/database.py

PASO 4: Data Service (secuencial)
    ├── src/services/polygon_client.py
    ├── src/services/asset_updater.py
    ├── src/services/scheduler.py
    └── src/api/main.py

PASO 5: ML Engine (secuencial)
    ├── src/data/data_service_client.py
    ├── src/services/prediction_service.py
    └── src/api/main.py (verificar)

PASO 6: LLM Agent (secuencial)
    ├── src/services/ml_analyzer.py
    ├── src/services/mcp_orchestrator.py
    └── src/api/routes.py

PASO 7: Backend Clients (paralelo)
    ├── src/shared/clients/ml-engine.client.ts
    ├── src/shared/clients/llm-agent.client.ts
    └── src/modules/*/services/*

PASO 8: Frontend Services (paralelo)
    ├── src/services/*.ts
    ├── src/stores/*.ts
    └── src/modules/*

PASO 9: Documentacion (paralelo)
    ├── OpenAPI specs
    ├── SERVICE-INTEGRATION.md
    ├── ARQUITECTURA-GENERAL.md
    └── DATABASE_INVENTORY.yml
```

---

## 4. IMPACTO DE CAMBIOS

### 4.1 Cambios de Alto Impacto (Afectan multiples archivos)

| Cambio | Archivos Afectados | Riesgo |
|--------|-------------------|--------|
| Cambiar puerto de servicio | docker-compose, .envs, services | ALTO |
| Cambiar nombre de BD | docker-compose, .envs, configs BD | ALTO |
| Cambiar URL de API | .envs, services, clients | MEDIO |
| Agregar nuevo endpoint | api/main, clients, services | BAJO |

### 4.2 Puntos de Ruptura Criticos

| Archivo | Si se modifica | Se rompe |
|---------|----------------|----------|
| `docker-compose.yml` (puertos) | SI | Todas las conexiones |
| `apps/backend/.env` (DB) | SI | Conexion a BD |
| `apps/ml-engine/src/services/prediction_service.py` | SI | Todas las predicciones |
| `apps/frontend/src/services/websocket.service.ts` | SI | Real-time updates |

---

## 5. CHECKLIST DE VALIDACION POR NIVEL

### 5.1 Nivel 0 - docker-compose.yml
- [ ] Todos los servicios definidos
- [ ] Puertos no conflictuan
- [ ] Variables de entorno completas
- [ ] Redes configuradas
- [ ] Volumenes persistentes

### 5.2 Nivel 1 - .env files
- [ ] Variables de BD consistentes
- [ ] URLs de servicios correctas
- [ ] API keys configuradas
- [ ] No hay valores hardcodeados

### 5.3 Nivel 2 - BD Config
- [ ] Pool size adecuado
- [ ] Timeout configurado
- [ ] SSL config correcta
- [ ] Schemas correctos

### 5.4 Nivel 3 - Data Service
- [ ] Polygon client funciona
- [ ] Datos se actualizan
- [ ] Scheduler ejecuta
- [ ] API responde

### 5.5 Nivel 4 - ML Engine
- [ ] Data client conecta
- [ ] Modelos cargan
- [ ] Predicciones funcionan
- [ ] API responde

### 5.6 Nivel 5 - LLM Agent
- [ ] ML client conecta
- [ ] MCP orchestrator funciona
- [ ] Routes expuestas
- [ ] API responde

### 5.7 Nivel 6 - Backend
- [ ] Clients conectan
- [ ] Services funcionan
- [ ] Routes correctas
- [ ] Auth funciona

### 5.8 Nivel 7 - Frontend
- [ ] Services conectan
- [ ] Stores actualizan
- [ ] WebSocket conecta
- [ ] UI renderiza

### 5.9 Nivel 8 - Documentacion
- [ ] OpenAPI valido
- [ ] Ejemplos correctos
- [ ] Links funcionan
- [ ] Contenido actualizado

---

## 6. ARCHIVOS QUE NO DEBEN MODIFICARSE

| Archivo | Razon |
|---------|-------|
| `apps/database/ddl/schemas/*.sql` | Ya validados, pueden romper BD |
| `apps/ml-engine/src/models/*.py` | Modelos entrenados, no tocar |
| `apps/*/node_modules/*` | Dependencias, no editar |
| `.git/*` | Control de version |

---

## 7. ESTRATEGIA DE ROLLBACK

### 7.1 Por Nivel

| Nivel | Estrategia Rollback |
|-------|---------------------|
| 0 | git checkout docker-compose.yml |
| 1 | Restaurar .env desde .env.example original |
| 2 | Restaurar config desde backup |
| 3-7 | git checkout archivos modificados |
| 8 | Regenerar docs |

### 7.2 Comando de Rollback Global
```bash
# Desde raiz del proyecto
git stash
# o
git checkout -- .
```

---

**Documento de dependencias completado**
**Siguiente fase:** FASE 5 - Refinamiento del plan
