#!/usr/bin/env python3
"""
Script rapide pour corriger l'erreur "no such table: executed_signals" en production
À exécuter directement sur le serveur de production
"""

import sqlite3
import os

# Chemin vers la base de données utilisée par le serveur
db_path = "crypto_trader.db"

print(f"Connexion à {db_path}...")

# Créer la table manquante
conn = sqlite3.connect(db_path)
cursor = conn.cursor()

cursor.execute('''
    CREATE TABLE IF NOT EXISTS executed_signals (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        signal_id TEXT UNIQUE,
        symbol TEXT NOT NULL,
        signal_type TEXT NOT NULL,
        source TEXT,
        entry_price REAL NOT NULL,
        target_price REAL,
        stop_loss REAL,
        confidence REAL,
        reasoning TEXT,
        position_size REAL,
        quantity REAL,
        is_active INTEGER DEFAULT 1,
        current_price REAL,
        pnl_usd REAL,
        pnl_percent REAL,
        max_pnl REAL,
        min_pnl REAL,
        executed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        closed_at TIMESTAMP,
        last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        timeframe TEXT,
        execution_method TEXT
    )
''')

# Créer l'index
cursor.execute('''
    CREATE INDEX IF NOT EXISTS idx_executed_signals_active
    ON executed_signals(is_active)
''')

conn.commit()

# Vérifier
cursor.execute("SELECT COUNT(*) FROM executed_signals")
count = cursor.fetchone()[0]
print(f"Table executed_signals créée avec succès: {count} enregistrements")

conn.close()
print("Migration terminée! Redémarrez le serveur.")