#!/usr/bin/env python3
"""
Script pour vérifier la configuration du thème dans la base de données
"""

import mysql.connector
from mysql.connector import Error
from python.db_config import DB_CONFIG

def check_theme_config():
    """Vérifie la configuration du thème public dans app_config"""
    
    connection = None
    
    try:
        # Connexion à la base de données
        connection = mysql.connector.connect(**DB_CONFIG)
        
        if connection.is_connected():
            print(f"✅ Connecté à la base de données 'RollerLogic'")
            print(f"   Host: gb9434-001.eu.clouddb.ovh.net:35670")
            print()
            
            cursor = connection.cursor(dictionary=True)
            
            # D'abord, vérifier la structure de la table
            cursor.execute("DESCRIBE app_config")
            columns = cursor.fetchall()
            
            print("📋 Structure de la table app_config:")
            for col in columns:
                print(f"   - {col['Field']} ({col['Type']}) {col['Null']} {col['Key']}")
            print()
            
            # Récupérer toutes les configurations
            cursor.execute("SELECT config_key, config_value FROM app_config")
            rows = cursor.fetchall()
            
            config = {}
            for row in rows:
                config[row['config_key']] = row['config_value']
            
            if config:
                print("📋 Configuration actuelle dans app_config:")
                for key, value in config.items():
                    print(f"   {key}: {value}")
                print()
                
                # Les clés utilisées dans le code API sont 'public_theme' et 'public_theme_force'
                theme = config.get('public_theme')
                force = config.get('public_theme_force')
                
                if theme is not None:
                    # Convertir la valeur force en booléen (stocké comme "1" ou null/absent)
                    force_bool = force == "1" or force == "true" or force == True
                    
                    print(f"🎨 Theme public: {theme}")
                    print(f"🔒 Force activé: {force} → {force_bool} {'🔴 (FORCE ACTIVE!)' if force_bool else '✅ (non forcé)'}")
                    print()
                    
                    if force_bool:
                        print("⚠️  ATTENTION: Le thème public est FORCE dans la base de données!")
                        print("   Les utilisateurs connectés ne peuvent PAS changer leur thème.")
                        print(f"   Thème forcé: {theme}")
                        print()
                        print("💡 Pour désactiver le forçage:")
                        print("   DELETE FROM app_config WHERE config_key = 'public_theme_force';")
                        print("   ou via le panel admin en décochant 'Forcer le thème'")
                    else:
                        print("✅ Le thème public n'est PAS forcé dans la base de données.")
                        print("   Les utilisateurs peuvent choisir leur propre thème.")
                        print()
                        print("💡 Si le changement de thème ne fonctionne toujours pas:")
                        print("   1. Vérifiez la console du navigateur (F12)")
                        print("   2. Vérifiez que loadSettings() retourne bien le nouveau thème")
                        print("   3. Vérifiez que applyResolvedTheme() est appelé")
                        print("   4. Vérifiez que dependencies est défini dans action-handler")
                else:
                    print("ℹ️  Clé 'public_theme' non trouvée dans app_config")
                    print("   Le thème public par défaut sera 'ocean'")
                    print("   Les utilisateurs peuvent changer leur thème normalement.")
            else:
                print("⚠️  Aucune configuration trouvée dans app_config")
                print("   La table pourrait être vide.")
            
            cursor.close()
            
    except Error as e:
        print(f"❌ Erreur de connexion MySQL: {e}")
        return
        
    finally:
        if connection and connection.is_connected():
            connection.close()
            print()
            print("Connexion fermée.")

if __name__ == "__main__":
    print("=" * 60)
    print("Vérification de la configuration du thème public")
    print("=" * 60)
    print()
    check_theme_config()
