#!/usr/bin/env python3
"""
Migration: Ajouter le champ network_device à la table ip
"""
import os
import sys
from sqlalchemy import text, create_engine

def main():
    """Ajoute le champ network_device à la table ip"""
    # Récupérer le chemin de la base de données
    db_path = os.getenv('DB_PATH', './data/db.sqlite')
    db_url = f"sqlite:///{db_path}"

    # Créer l'engine directement
    engine = create_engine(db_url, echo=False)

    print(f"📦 Migration: Ajout du champ network_device")
    print(f"🗄️  Base de données: {db_path}")

    try:
        with engine.connect() as conn:
            # Vérifier si la colonne existe déjà
            result = conn.execute(text("PRAGMA table_info(ip)"))
            columns = [row[1] for row in result]

            if 'network_device' in columns:
                print("⚠️  La colonne 'network_device' existe déjà. Migration ignorée.")
                return

            # Ajouter la colonne network_device
            print("➕ Ajout de la colonne 'network_device'...")
            conn.execute(text("""
                ALTER TABLE ip
                ADD COLUMN network_device BOOLEAN DEFAULT 0
            """))

            # Créer un index sur la colonne
            print("🔍 Création de l'index sur 'network_device'...")
            conn.execute(text("""
                CREATE INDEX IF NOT EXISTS idx_ip_network_device ON ip(network_device)
            """))

            conn.commit()
            print("✅ Migration réussie!")

    except Exception as e:
        print(f"❌ Erreur lors de la migration: {e}")
        sys.exit(1)

if __name__ == "__main__":
    main()
