#!/usr/bin/env python
"""
Script pour vérifier la structure de la table core_service
Exécutez : python check_service_table.py
"""

import os
import sys
import django

# Configuration Django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
django.setup()

from django.db import connection


def check_service_table():
    """Vérifie la structure de la table core_service"""

    print("=" * 70)
    print("  STRUCTURE DE LA TABLE core_service")
    print("=" * 70)
    print()

    with connection.cursor() as cursor:
        # Obtenir la structure de la table
        cursor.execute("PRAGMA table_info(core_service)")
        columns = cursor.fetchall()

        print(f"Total de colonnes : {len(columns)}")
        print()
        print("Liste des colonnes :")
        print("-" * 70)
        print(f"{'#':<5} {'Nom de la colonne':<35} {'Type':<15} {'Null':<5}")
        print("-" * 70)

        # Colonnes qu'on recherche
        translation_fields = [
            'titre_fr', 'titre_en',
            'description_courte_fr', 'description_courte_en',
            'description_complete_fr', 'description_complete_en'
        ]

        found_translation_fields = []

        for col in columns:
            # col = (cid, name, type, notnull, dflt_value, pk)
            cid, name, col_type, notnull, dflt_value, pk = col
            null_str = "No" if notnull else "Yes"
            print(f"{cid:<5} {name:<35} {col_type:<15} {null_str:<5}")

            # Vérifier si c'est un champ de traduction
            if name in translation_fields:
                found_translation_fields.append(name)

        print("-" * 70)
        print()

        # Résumé des champs de traduction
        print("=" * 70)
        print("  CHAMPS DE TRADUCTION")
        print("=" * 70)
        print()

        if found_translation_fields:
            print(f"✅ {len(found_translation_fields)} champs de traduction trouvés :")
            for field in found_translation_fields:
                print(f"    - {field}")
        else:
            print("❌ AUCUN champ de traduction trouvé !")

        print()

        missing_fields = [f for f in translation_fields if f not in found_translation_fields]
        if missing_fields:
            print(f"❌ {len(missing_fields)} champs manquants :")
            for field in missing_fields:
                print(f"    - {field}")
            print()
            print("⚠️ PROBLÈME : Les champs de traduction n'existent pas dans la base !")
            print()
            print("SOLUTION :")
            print("  1. Les champs n'ont jamais été créés")
            print("  2. Il faut forcer leur création avec une migration SQL brute")
        else:
            print("✅ Tous les champs de traduction sont présents !")
            print()
            print("Si les onglets n'apparaissent pas dans l'admin,")
            print("le problème vient de la configuration de TranslationAdmin.")

        print()
        print("=" * 70)


if __name__ == '__main__':
    check_service_table()
