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>
171 lines
5.5 KiB
YAML
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"
|