#!/usr/bin/env python3
"""
Attribue les avatars animal aux acheteurs du pack
(utilise user_weekly_avatars uniquement, pas user_avatars qui a une FK)
"""

import mysql.connector
from python.db_config import DB_CONFIG

conn = mysql.connector.connect(**DB_CONFIG)
cursor = conn.cursor(dictionary=True)

print("=" * 70)
print("ATTRIBUTION DES AVATARS ANIMAL AUX ACHETEURS DU PACK")
print("=" * 70)

# 1. Récupérer les weekly_rewards
print("\n1. Weekly rewards actuels:")
cursor.execute("SELECT week_key, avatar_id FROM weekly_rewards ORDER BY week_key")
rewards = cursor.fetchall()
for r in rewards:
    print(f"   {r['week_key']}: Avatar {r['avatar_id']} -> /avatars/380_animal_avatard/{r['avatar_id']}.svg")

# 2. Récupérer les acheteurs du pack
print("\n2. Acheteurs du pack:")
cursor.execute("""
    SELECT ucp.user_id, u.display_name 
    FROM user_challenge_pack ucp
    JOIN users u ON u.id = ucp.user_id
""")
buyers = cursor.fetchall()
for b in buyers:
    print(f"   {b['display_name']} (ID: {b['user_id']})")

# 3. Attribuer les avatars (user_weekly_avatars uniquement)
print("\n3. Attribution:")
for buyer in buyers:
    user_id = buyer['user_id']
    user_name = buyer['display_name']
    granted = 0
    
    for reward in rewards:
        week_key = reward['week_key']
        avatar_id = reward['avatar_id']
        
        # Vérifier si déjà présent
        cursor.execute(
            "SELECT 1 FROM user_weekly_avatars WHERE user_id = %s AND avatar_id = %s",
            (user_id, avatar_id)
        )
        
        if not cursor.fetchone():
            cursor.execute(
                """INSERT INTO user_weekly_avatars (user_id, avatar_id, week_key, obtained_at, obtained_from)
                   VALUES (%s, %s, %s, NOW(), 'challenge_pack')""",
                (user_id, avatar_id, week_key)
            )
            granted += 1
            print(f"   ✓ {user_name}: Avatar {avatar_id} (semaine {week_key})")
    
    if granted == 0:
        print(f"   {user_name}: tous les avatars déjà attribués")
    else:
        print(f"   -> {granted} avatars attribués à {user_name}")

conn.commit()

# 4. Vérification finale
print("\n" + "=" * 70)
print("VÉRIFICATION FINALE")
print("=" * 70)

print("\nAvatars de Bruno-admin (ID: 1) dans user_weekly_avatars:")
cursor.execute("""
    SELECT avatar_id, week_key, obtained_from
    FROM user_weekly_avatars 
    WHERE user_id = 1
    ORDER BY week_key
""")
avatars = cursor.fetchall()
print(f"Total: {len(avatars)} avatars")
for a in avatars:
    path = f"/avatars/380_animal_avatard/{a['avatar_id']}.svg"
    print(f"   Semaine {a['week_key']}: Avatar {a['avatar_id']} -> {path}")

conn.close()
print("\n✅ Terminé!")
