trading-platform/scripts/extract-ddl-schema.sh
Adrian Flores Cortes 090fe5d278 feat: Add Trading Agents types for frontend
Create comprehensive TypeScript type definitions for Trading Agents (Atlas, Orion, Nova) in the frontend.

- Align with backend trading-agents.client.ts interfaces
- Export AgentType, AgentStatus, BotStatus types
- Define TradingBot, AgentMetrics, AgentPosition, AgentTrade interfaces
- Include utility functions for status mapping and display names
- Full JSDoc documentation for all types
- Export from main types/index.ts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 15:40:04 -06:00

104 lines
3.9 KiB
Bash

#!/bin/bash
# ==============================================================================
# Script: extract-ddl-schema.sh
# Description: Extrae estructura completa de todos los archivos DDL
# ==============================================================================
BASE_DIR="C:/Empresas/ISEM/workspace-v2/projects/trading-platform"
DDL_DIR="$BASE_DIR/apps/database/ddl/schemas"
OUTPUT_FILE="$BASE_DIR/orchestration/analisis/coherencia/DDL-COMPLETE-MATRIX.yml"
# Crear directorio de salida
mkdir -p "$BASE_DIR/orchestration/analisis/coherencia"
# Iniciar archivo YAML
cat > "$OUTPUT_FILE" << 'EOF'
# ==============================================================================
# DDL Complete Matrix - Trading Platform
# Generated: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
# Total Schemas: 10
# ==============================================================================
version: "1.0.0"
project: "trading-platform"
generated_at: "$(date -u +"%Y-%m-%d %H:%M:%S UTC")"
schemas:
EOF
# Iterar por cada schema
for schema_dir in "$DDL_DIR"/*; do
if [ -d "$schema_dir" ]; then
schema_name=$(basename "$schema_dir")
echo " $schema_name:" >> "$OUTPUT_FILE"
# Extraer enums
echo " enums:" >> "$OUTPUT_FILE"
if [ -f "$schema_dir/00-enums.sql" ] || [ -f "$schema_dir/01-enums.sql" ]; then
enum_file=$(ls "$schema_dir"/*enum*.sql 2>/dev/null | head -1)
if [ -f "$enum_file" ]; then
grep -E "CREATE TYPE.*AS ENUM" "$enum_file" | sed 's/CREATE TYPE / - /' | sed 's/ AS ENUM.*//' >> "$OUTPUT_FILE"
fi
else
echo " []" >> "$OUTPUT_FILE"
fi
# Extraer tablas
echo " tables:" >> "$OUTPUT_FILE"
if [ -d "$schema_dir/tables" ]; then
for table_file in "$schema_dir/tables"/*.sql; do
if [ -f "$table_file" ]; then
table_name=$(grep -m1 "CREATE TABLE" "$table_file" | sed 's/CREATE TABLE //' | sed 's/ (.*//' | sed "s/${schema_name}\.//" | tr -d '(')
if [ ! -z "$table_name" ]; then
echo " - name: $table_name" >> "$OUTPUT_FILE"
echo " file: $(basename "$table_file")" >> "$OUTPUT_FILE"
# Extraer columnas principales (PK, FK, campos importantes)
echo " columns:" >> "$OUTPUT_FILE"
grep -E "^ [a-z_]+.*," "$table_file" | head -20 | sed 's/^ / - /' | sed 's/,.*//' >> "$OUTPUT_FILE"
# Extraer FKs
echo " foreign_keys:" >> "$OUTPUT_FILE"
grep -i "REFERENCES" "$table_file" | sed 's/.*REFERENCES / - references: /' | sed 's/(.*//' >> "$OUTPUT_FILE" || echo " []" >> "$OUTPUT_FILE"
# Extraer índices
echo " indexes:" >> "$OUTPUT_FILE"
grep "CREATE INDEX" "$table_file" | sed 's/CREATE INDEX / - /' | sed 's/ ON.*//' >> "$OUTPUT_FILE" || echo " []" >> "$OUTPUT_FILE"
fi
fi
done
else
echo " []" >> "$OUTPUT_FILE"
fi
# Extraer funciones
echo " functions:" >> "$OUTPUT_FILE"
if [ -d "$schema_dir/functions" ]; then
for func_file in "$schema_dir/functions"/*.sql; do
if [ -f "$func_file" ]; then
func_name=$(grep -m1 "CREATE.*FUNCTION" "$func_file" | sed 's/.*FUNCTION //' | sed 's/(.*//')
if [ ! -z "$func_name" ]; then
echo " - $(basename "$func_file" .sql): $func_name" >> "$OUTPUT_FILE"
fi
fi
done
else
echo " []" >> "$OUTPUT_FILE"
fi
# Extraer triggers
echo " triggers:" >> "$OUTPUT_FILE"
if [ -d "$schema_dir/functions" ]; then
grep -h "CREATE TRIGGER" "$schema_dir/functions"/*.sql 2>/dev/null | sed 's/CREATE TRIGGER / - /' | sed 's/ BEFORE.*//' | sed 's/ AFTER.*//' >> "$OUTPUT_FILE" || echo " []" >> "$OUTPUT_FILE"
else
echo " []" >> "$OUTPUT_FILE"
fi
echo "" >> "$OUTPUT_FILE"
fi
done
echo "DDL matrix generada en: $OUTPUT_FILE"
echo "Total de lineas: $(wc -l < "$OUTPUT_FILE")"