# 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"