trading-platform/orchestration/tareas/TASK-2026-02-03-ANALISIS-DDL-MODELADO/inventarios/DDL-CONFLICTS-REGISTRY.yml
Adrian Flores Cortes 92b1009fe8 [TASK-2026-02-03-ANALISIS-DDL-MODELADO] docs: Add comprehensive DDL analysis and planning
Phase C (Context) and A (Analysis) complete:
- Analyzed 11 schemas, ~90 tables, 68+ enums
- Identified 15 gaps (4 P0, 4 P1, 7 P2)
- Detected 5 conflicts and 3 duplicities
- Created validation matrix DDL vs requirements

Phase P (Planning) in progress:
- 7-phase execution plan with CAPVED compliance
- Subtask delegation plan for parallel execution
- Estimated effort: 126h (without MT4)

Key findings:
- GAP-002: financial.refunds missing (P0 - Stripe blocker)
- GAP-003: education.instructors missing (P0)
- CONF-001: transaction_type enum conflict
- DUP-001: timeframe enum duplicated

Deliverables created:
- 01-CAPTURA.md, 02-ANALISIS.md, 03-PLANIFICACION.md
- DDL-GAPS-REGISTRY.yml
- DDL-CONFLICTS-REGISTRY.yml
- DDL-VALIDATION-MATRIX.yml
- DELEGATION-PLAN.yml

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 23:40:28 -06:00

171 lines
5.5 KiB
YAML

# DDL-CONFLICTS-REGISTRY.yml
# Registro de conflictos y duplicidades en DDL
# Tarea: TASK-2026-02-03-ANALISIS-DDL-MODELADO
metadata:
fecha_creacion: "2026-02-03"
fecha_actualizacion: "2026-02-03"
total_conflictos: 5
total_duplicidades: 3
conflictos_nomenclatura:
- id: "CONF-001"
tipo: "enum_duplicado"
nombre: "transaction_type"
ubicaciones:
- schema: "financial"
archivo: "ddl/schemas/financial/00-enums.sql"
valores: ["deposit", "withdrawal", "transfer_in", "transfer_out", "fee", "refund", "earning", "distribution", "bonus"]
- schema: "investment"
archivo: "ddl/schemas/investment/00-enums.sql"
valores: ["deposit", "withdrawal", "distribution"]
problema: "Mismo nombre, diferentes contextos"
resolucion:
propuesta: "Renombrar a financial_tx_type e investment_tx_type"
esfuerzo: "3h"
impacto: "Backend requiere actualización"
prioridad: "P1"
estado: "pendiente"
- id: "CONF-002"
tipo: "enum_duplicado"
nombre: "transaction_status"
ubicaciones:
- schema: "financial"
archivo: "ddl/schemas/financial/00-enums.sql"
- schema: "investment"
archivo: "ddl/schemas/investment/00-enums.sql"
problema: "Duplicación de estados"
resolucion:
propuesta: "Unificar en tipo compartido o renombrar"
esfuerzo: "2h"
impacto: "Menor"
prioridad: "P2"
estado: "pendiente"
conflictos_diseno:
- id: "CONF-003"
tipo: "referencia_inconsistente"
descripcion: "Símbolos referenciados como strings en ML, no como FK"
ubicaciones:
- schema: "ml"
tabla: "predictions"
columna: "symbol (VARCHAR)"
- schema: "trading"
tabla: "symbols"
columna: "id (UUID)"
problema: "Integridad referencial no garantizada"
resolucion:
propuesta: "Agregar FK a trading.symbols o mantener como diseño intencional (performance)"
decision_requerida: true
esfuerzo: "4h si se cambia"
prioridad: "P1"
estado: "pendiente_decision"
- id: "CONF-004"
tipo: "tipo_dato_inconsistente"
descripcion: "Timestamps inconsistentes"
ubicaciones:
- algunos_usan: "TIMESTAMP"
- otros_usan: "TIMESTAMPTZ"
problema: "Potencial confusión con zonas horarias"
resolucion:
propuesta: "Estandarizar a TIMESTAMPTZ"
esfuerzo: "4h"
impacto: "Migraciones requeridas"
prioridad: "P2"
estado: "pendiente"
- id: "CONF-005"
tipo: "decision_pendiente"
descripcion: "wallet_type enum vs columnas específicas"
contexto: |
La tabla financial.wallets usa enum wallet_type (trading, investment, earnings, referral).
Esto es el diseño correcto y unificado.
problema: "Ninguno - verificación confirma diseño correcto"
resolucion:
propuesta: "Mantener diseño actual"
esfuerzo: "0h"
prioridad: "N/A"
estado: "resuelto"
duplicidades:
- id: "DUP-001"
tipo: "enum_duplicado"
nombre: "timeframe"
ubicaciones:
- schema: "trading"
archivo: "ddl/schemas/trading/00-enums.sql"
valores: ["1m", "5m", "15m", "30m", "1h", "4h", "1d", "1w", "1M"]
- schema: "market_data"
archivo: "ddl/schemas/market_data/00-enums.sql"
valores: ["1m", "5m", "15m", "30m", "1h", "4h", "1d", "1w"]
problema: "Duplicación innecesaria"
resolucion:
propuesta: "Mover a schema public como trading_timeframe"
esfuerzo: "4h"
pasos:
- "Crear enum en public"
- "Migrar trading a usar public.trading_timeframe"
- "Migrar market_data a usar public.trading_timeframe"
- "Eliminar enums duplicados"
prioridad: "P1"
estado: "pendiente"
- id: "DUP-002"
tipo: "tabla_concepto"
descripcion: "signals vs predictions"
ubicaciones:
- schema: "trading"
tabla: "signals"
proposito: "Señales de trading para usuarios"
- schema: "ml"
tabla: "predictions"
proposito: "Predicciones de modelos ML"
analisis: |
Aunque parecen duplicados, sirven propósitos diferentes:
- trading.signals: Señales presentadas al usuario
- ml.predictions: Datos crudos de modelos
problema: "Ninguno - diferentes propósitos"
resolucion:
propuesta: "Mantener separados, documentar relación"
esfuerzo: "0h"
prioridad: "N/A"
estado: "resuelto"
- id: "DUP-003"
tipo: "funcion_duplicada"
nombre: "update_updated_at()"
ubicaciones:
- schema: "auth"
archivo: "ddl/schemas/auth/functions/01-triggers.sql"
- schema: "trading"
archivo: "ddl/schemas/trading/functions/01-triggers.sql"
- schema: "financial"
archivo: "ddl/schemas/financial/functions/01-triggers.sql"
- schema: "education"
archivo: "ddl/schemas/education/functions/01-triggers.sql"
problema: "Función idéntica repetida en múltiples schemas"
resolucion:
propuesta: "Mover a schema public, actualizar triggers"
esfuerzo: "3h"
pasos:
- "Crear función en public"
- "Actualizar triggers para usar public.update_updated_at()"
- "Eliminar funciones duplicadas"
prioridad: "P2"
estado: "pendiente"
resumen_acciones:
inmediatas:
- "CONF-001: Renombrar transaction_type enums"
- "DUP-001: Unificar timeframe"
corto_plazo:
- "CONF-003: Decidir sobre FK símbolos en ML"
- "DUP-003: Unificar funciones comunes"
mediano_plazo:
- "CONF-004: Estandarizar timestamps"
- "CONF-002: Unificar transaction_status"