#!/usr/bin/env python3
"""Script pour vérifier les achats de packs de billes en base de données."""

import mysql.connector

TARGET_EMAIL = "bruno@taaazzz-prog.fr"


def main():
    try:
        conn = mysql.connector.connect(**DB_CONFIG)
        cursor = conn.cursor(dictionary=True)

        print("=" * 60)
        print("VÉRIFICATION DES PACKS DE BILLES")
        print("=" * 60)

        # 1. Packs disponibles
        print("\n📦 PACKS DISPONIBLES:")
        cursor.execute("SELECT * FROM ball_skin_packs")
        packs = cursor.fetchall()
        if packs:
            for pack in packs:
                skin_ids = []
                if pack.get("skin_ids"):
                    try:
                        import json
from python.db_config import DB_CONFIG

                        skin_ids = json.loads(pack["skin_ids"])
                    except Exception:
                        skin_ids = str(pack["skin_ids"]).split(",")
                print(f"  - Pack ID: {pack['pack_id']}")
                print(f"    Nom: {pack['name']}")
                print(f"    Prix: {pack['price']}€")
                print(f"    Nombre de billes: {pack.get('skin_count') or len(skin_ids)}")
                print()
        else:
            print("  Aucun pack disponible")

        # 2. Achats de packs
        print("\n🛒 ACHATS DE PACKS:")
        cursor.execute(
            """
            SELECT ubp.*, p.name as pack_name
            FROM user_ball_skin_packs ubp
            JOIN ball_skin_packs p ON ubp.pack_id = p.pack_id
            """
        )
        purchases = cursor.fetchall()
        if purchases:
            for p in purchases:
                print(f"  - User ID: {p['user_id']}")
                print(f"    Pack: {p['pack_name']} ({p['pack_id']})")
                print(f"    Date d'achat: {p['purchased_at']}")
                print()
        else:
            print("  Aucun achat de pack enregistré")

        # 3. Vérifier un utilisateur spécifique
        print(f"\n👤 ACHATS POUR: {TARGET_EMAIL}")
        cursor.execute(
            """
            SELECT u.id, u.email, ubp.pack_id, ubp.purchased_at
            FROM users u
            LEFT JOIN user_ball_skin_packs ubp ON ubp.user_id = u.id
            WHERE u.email = %s
            ORDER BY ubp.purchased_at DESC
            """,
            (TARGET_EMAIL,),
        )
        user_purchases = cursor.fetchall()
        if user_purchases:
            for row in user_purchases:
                print(
                    f"  - User ID: {row['id']} | Pack: {row.get('pack_id')} | Date: {row.get('purchased_at')}"
                )
        else:
            print("  Aucun achat trouvé pour cet utilisateur")

        # 4. Billes débloquées pour cet utilisateur
        print(f"\n🎯 BILLES DÉBLOQUÉES POUR: {TARGET_EMAIL}")
        cursor.execute(
            """
            SELECT u.id, u.email, ubs.skin_id, ubs.unlocked_at, ubs.source_pack
            FROM users u
            LEFT JOIN user_ball_skins ubs ON ubs.user_id = u.id
            WHERE u.email = %s
            ORDER BY ubs.unlocked_at DESC
            """,
            (TARGET_EMAIL,),
        )
        skins = cursor.fetchall()
        if skins:
            for row in skins:
                print(
                    f"  - Skin: {row.get('skin_id')} | Date: {row.get('unlocked_at')} | Pack: {row.get('source_pack')}"
                )
        else:
            print("  Aucun skin débloqué pour cet utilisateur")

        conn.close()
        print("\n✅ Vérification terminée")

    except mysql.connector.Error as err:
        print(f"❌ Erreur MySQL: {err}")
    except Exception as e:
        print(f"❌ Erreur: {e}")


if __name__ == "__main__":
    main()
