#!/usr/bin/env python3
"""
Script d'initialisation de la base de données
"""
import sqlite3
import os
from datetime import datetime

def create_database():
      db_path = "crypto_trader.db"

      print(f"Création de la base de données: {db_path}")

      conn = sqlite3.connect(db_path)
      cursor = conn.cursor()

      # Table pour les données de prix
      cursor.execute('''
          CREATE TABLE IF NOT EXISTS price_data (
              id INTEGER PRIMARY KEY AUTOINCREMENT,
              symbol TEXT NOT NULL,
              price REAL NOT NULL,
              volume REAL DEFAULT 0,
              timestamp TEXT NOT NULL,
              source TEXT DEFAULT 'unknown'
          )
      ''')

      # Table pour les positions
      cursor.execute('''
          CREATE TABLE IF NOT EXISTS positions (
              id INTEGER PRIMARY KEY AUTOINCREMENT,
              symbol TEXT NOT NULL,
              side TEXT NOT NULL,
              size REAL NOT NULL,
              entry_price REAL NOT NULL,
              current_price REAL,
              pnl REAL DEFAULT 0,
              status TEXT DEFAULT 'open',
              created_at TEXT NOT NULL,
              updated_at TEXT,
              closed_at TEXT
          )
      ''')

      # Table pour les signaux
      cursor.execute('''
          CREATE TABLE IF NOT EXISTS signals (
              id INTEGER PRIMARY KEY AUTOINCREMENT,
              symbol TEXT NOT NULL,
              signal_type TEXT NOT NULL,
              confidence REAL NOT NULL,
              price REAL NOT NULL,
              timestamp TEXT NOT NULL,
              source TEXT DEFAULT 'oracle'
          )
      ''')

      # Table pour les trades exécutés
      cursor.execute('''
          CREATE TABLE IF NOT EXISTS executed_trades (
              id INTEGER PRIMARY KEY AUTOINCREMENT,
              symbol TEXT NOT NULL,
              side TEXT NOT NULL,
              size REAL NOT NULL,
              price REAL NOT NULL,
              pnl REAL DEFAULT 0,
              fees REAL DEFAULT 0,
              status TEXT DEFAULT 'completed',
              execution_time TEXT NOT NULL
          )
      ''')

      conn.commit()

      # Vérifier les tables créées
      cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
      tables = cursor.fetchall()
      print("Tables créées:")
      for table in tables:
          print(f"  - {table[0]}")

      conn.close()
      print(f"Base de données initialisée avec succès!")

if __name__ == "__main__":
      create_database()
