workspace/projects/trading-platform/apps/database/schemas/_MAP.md
rckrdmrd ea1879f4ad feat: Initial workspace structure with multi-level Git configuration
- Configure workspace Git repository with comprehensive .gitignore
- Add Odoo as submodule for ERP reference code
- Include documentation: SETUP.md, GIT-STRUCTURE.md
- Add gitignore templates for projects (backend, frontend, database)
- Structure supports independent repos per project/subproject level

Workspace includes:
- core/ - Reusable patterns, modules, orchestration system
- projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.)
- knowledge-base/ - Reference code and patterns (includes Odoo submodule)
- devtools/ - Development tools and templates
- customers/ - Client implementations template

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 10:44:23 -06:00

15 KiB

_MAP - Database Schemas

Índice de navegación para los esquemas de base de datos

ACTUALIZADO: 2025-12-06 - Estructura DDL completada según análisis de requisitos Política: Carga Limpia (DDL-First) - Ver DIRECTIVA-POLITICA-CARGA-LIMPIA.md Total: 63 tablas, 91 archivos SQL

Estructura de Archivos

apps/database/
├── ddl/
│   └── schemas/
│       ├── auth/           # 10 tablas - Autenticación y usuarios
│       ├── education/      # 14 tablas - Plataforma educativa
│       ├── trading/        # 9 tablas  - Trading y Paper Engine
│       ├── investment/     # 5 tablas  - Cuentas PAMM
│       ├── financial/      # 8 tablas  - Pagos, wallets unificadas
│       ├── ml/             # 5 tablas  - Machine Learning
│       ├── llm/            # 5 tablas  - LLM Agent
│       └── audit/          # 7 tablas  - Auditoría y compliance
├── seeds/
│   ├── prod/               # Seeds de producción
│   └── dev/                # Seeds de desarrollo
└── scripts/
    ├── create-database.sh
    └── drop-and-recreate-database.sh

Resumen de Schemas

Schema Propósito Tablas Funciones Estado
auth Autenticación y usuarios 10 4 Completado
education Plataforma educativa 14 8 Completado
trading Trading y Paper Engine 9 2 Completado
investment Cuentas PAMM 5 - Completado
financial Wallets unificadas, pagos 8 4 Completado
ml Machine Learning signals 5 - Completado
llm LLM Agent, RAG 5 - Completado
audit Logs, compliance 7 - Completado

Detalle por Schema

auth (10 tablas)

Tabla Archivo Descripción
users 01-users.sql Usuarios base del sistema
user_profiles 02-user_profiles.sql Información extendida
oauth_accounts 03-oauth_accounts.sql Cuentas OAuth (Google, GitHub)
sessions 04-sessions.sql Sesiones activas
email_verifications 05-email_verifications.sql Verificación de email
phone_verifications 06-phone_verifications.sql Verificación de teléfono
password_reset_tokens 07-password_reset_tokens.sql Tokens de reset
auth_logs 08-auth_logs.sql Log de autenticación
login_attempts 09-login_attempts.sql NUEVO - Control de intentos
rate_limiting_config 10-rate_limiting_config.sql NUEVO - Configuración rate limit

Funciones: update_updated_at, log_auth_event, cleanup_expired_sessions, create_user_profile_trigger

education (14 tablas)

Tabla Archivo Descripción
categories 01-categories.sql Categorías de cursos
courses 02-courses.sql Cursos de trading
modules 03-modules.sql Módulos de cursos
lessons 04-lessons.sql Lecciones individuales
enrollments 05-enrollments.sql Inscripciones
progress 06-progress.sql Progreso por lección
quizzes 07-quizzes.sql Cuestionarios
quiz_questions 08-quiz_questions.sql Preguntas de quiz
quiz_attempts 09-quiz_attempts.sql Intentos de quiz
certificates 10-certificates.sql Certificados emitidos
user_achievements 11-user_achievements.sql Logros de usuarios
user_gamification_profile 12-user_gamification_profile.sql NUEVO - Perfil gamificación
user_activity_log 13-user_activity_log.sql NUEVO - Log de actividad
course_reviews 14-course_reviews.sql NUEVO - Reseñas de cursos

Funciones: update_updated_at, update_enrollment_progress, auto_complete_enrollment, generate_certificate, update_course_stats, update_enrollment_count, update_gamification_profile, views

trading (9 tablas)

Tabla Archivo Descripción
symbols 01-symbols.sql Instrumentos financieros
watchlists 02-watchlists.sql Listas de seguimiento
watchlist_items 03-watchlist_items.sql Items en watchlists
bots 04-bots.sql Agentes de trading (Atlas, Orion, Nova)
orders 05-orders.sql Órdenes de trading
positions 06-positions.sql Posiciones abiertas/cerradas
trades 07-trades.sql Historial de trades
signals 08-signals.sql INTERFAZ ML - Señales generadas
trading_metrics 09-trading_metrics.sql Métricas de rendimiento

Funciones: calculate_position_pnl, update_bot_stats

Nota: La tabla signals sirve como interfaz entre Trading (consume) y ML (produce), resolviendo la dependencia circular.

investment (5 tablas)

Tabla Archivo Descripción
products 01-products.sql Productos PAMM
accounts 02-accounts.sql Cuentas de inversión
transactions 03-transactions.sql Movimientos de cuenta
distributions 04-distributions.sql Distribución de ganancias (80/20)
risk_questionnaire 05-risk_questionnaire.sql NUEVO - Cuestionario de riesgo

Delimitación: Este schema solo maneja PAMM. Portfolio personal se gestiona desde dashboard (OQI-008).

financial (8 tablas)

Tabla Archivo Descripción
wallets 01-wallets.sql UNIFICADO - Wallets del sistema
wallet_transactions 02-wallet_transactions.sql Transacciones de wallet
subscriptions 03-subscriptions.sql Suscripciones activas
payments 04-payments.sql Pagos procesados (Stripe)
invoices 05-invoices.sql Facturas
wallet_audit_log 06-wallet_audit_log.sql NUEVO - Auditoría de wallets
currency_exchange_rates 07-currency_exchange_rates.sql NUEVO - Tipos de cambio USD/MXN
wallet_limits 08-wallet_limits.sql NUEVO - Límites de operación

Funciones: update_wallet_balance, process_transaction, triggers, views

Decisión: USD como moneda principal, MXN mediante conversión. Ver DEC-001.

ml (5 tablas)

Tabla Archivo Descripción
models 01-models.sql Registro de modelos ML
model_versions 02-model_versions.sql NUEVO - Versionado de modelos
predictions 03-predictions.sql Predicciones generadas
prediction_outcomes 04-prediction_outcomes.sql Resultados de predicciones
feature_store 05-feature_store.sql Features pre-calculadas

llm (5 tablas)

Tabla Archivo Descripción
conversations 01-conversations.sql Conversaciones con LLM
messages 02-messages.sql Mensajes de conversación
user_preferences 03-user_preferences.sql NUEVO - Preferencias de usuario
user_memory 04-user_memory.sql NUEVO - Memoria persistente
embeddings 05-embeddings.sql RAG - Embeddings (pgvector)

Decisión: pgvector para embeddings. Ver DEC-004.

audit (7 tablas)

Tabla Archivo Descripción
audit_logs 01-audit_logs.sql Log general de auditoría
security_events 02-security_events.sql Eventos de seguridad
system_events 03-system_events.sql Eventos del sistema
trading_audit 04-trading_audit.sql Auditoría de trading
api_request_logs 05-api_request_logs.sql Logs de API
data_access_logs 06-data_access_logs.sql Acceso a datos sensibles (GDPR)
compliance_logs 07-compliance_logs.sql Cumplimiento regulatorio

Diagrama de Relaciones

┌─────────────────────────────────────────────────────────────────────┐
│                              auth                                    │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────────────┐    │
│  │  users   │──│ profiles │  │ sessions │  │ oauth_accounts   │    │
│  └────┬─────┘  └──────────┘  └──────────┘  └──────────────────┘    │
│       │                                                             │
└───────┼─────────────────────────────────────────────────────────────┘
        │
        ├──────────────────────────┬──────────────────────────┐
        │                          │                          │
        ▼                          ▼                          ▼
┌───────────────┐          ┌───────────────┐          ┌───────────────┐
│   education   │          │    trading    │          │  investment   │
│ ┌───────────┐ │          │ ┌───────────┐ │          │ ┌───────────┐ │
│ │  courses  │ │          │ │   bots    │─┼──────────┼─│ products  │ │
│ └─────┬─────┘ │          │ └─────┬─────┘ │          │ └─────┬─────┘ │
│       │       │          │       │       │          │       │       │
│ ┌─────▼─────┐ │          │ ┌─────▼─────┐ │          │ ┌─────▼─────┐ │
│ │ lessons   │ │          │ │ signals◄──┼─┼── ml     │ │ accounts  │ │
│ └───────────┘ │          │ └─────┬─────┘ │          │ └─────┬─────┘ │
│               │          │       │       │          │       │       │
│ ┌───────────┐ │          │ ┌─────▼─────┐ │          │ ┌─────▼─────┐ │
│ │enrollments│ │          │ │ positions │─┼──────────┼─│transactions│ │
│ └───────────┘ │          │ └───────────┘ │          │ └───────────┘ │
└───────────────┘          └───────────────┘          └───────────────┘
        │                          │                          │
        │                          │                          │
        └──────────────────────────┼──────────────────────────┘
                                   │
                                   ▼
                           ┌───────────────┐
                           │   financial   │
                           │ ┌───────────┐ │
                           │ │  wallets  │◄──── UNIFICADO
                           │ └─────┬─────┘ │
                           │       │       │
                           │ ┌─────▼─────┐ │
                           │ │ payments  │ │
                           │ └───────────┘ │
                           │               │
                           │ ┌───────────┐ │
                           │ │subscript. │ │
                           │ └───────────┘ │
                           └───────────────┘

┌───────────────┐          ┌───────────────┐          ┌───────────────┐
│      ml       │          │      llm      │          │     audit     │
│ ┌───────────┐ │          │ ┌───────────┐ │          │ ┌───────────┐ │
│ │  models   │ │          │ │ conversat.│ │          │ │audit_logs │ │
│ └─────┬─────┘ │          │ └─────┬─────┘ │          │ └───────────┘ │
│       │       │          │       │       │          │               │
│ ┌─────▼─────┐ │          │ ┌─────▼─────┐ │          │ ┌───────────┐ │
│ │predictions├─┼──────────┼─│ embeddings│ │          │ │sec_events │ │
│ └───────────┘ │  signals │ └───────────┘ │          │ └───────────┘ │
└───────────────┘          └───────────────┘          └───────────────┘

Orden de Ejecución (create-database.sh)

1. Extensions (uuid-ossp, pgcrypto, pg_trgm, btree_gin, vector)
2. Schemas (auth, education, financial, trading, investment, ml, llm, audit)
3. DDL por schema en orden de dependencia:
   - auth      (sin dependencias)
   - education (depende de auth)
   - financial (depende de auth)
   - trading   (depende de auth)
   - investment(depende de auth, trading)
   - ml        (depende de auth, trading)
   - llm       (depende de auth)
   - audit     (depende de auth)
4. Seeds (prod o dev)

Comandos de Uso

# Crear base de datos nueva
./scripts/create-database.sh

# Eliminar y recrear (desarrollo)
./scripts/drop-and-recreate-database.sh

# Solo cargar seeds
./scripts/create-database.sh --seeds-only --env dev

Notas Importantes

  • TIMESTAMPTZ: Todas las columnas de fecha usan timezone (DEC-007)
  • gen_random_uuid(): Para generación de UUIDs (no uuid_generate_v4())
  • Row Level Security (RLS): Implementar en fase de seguridad
  • Particionamiento: Considerar para predictions, audit_logs en producción
  • Backups: Configurar backup incremental cada 6 horas

Referencias


Última actualización: 2025-12-06 Generado por Requirements-Analyst Agent