#!/usr/bin/env python3
"""Simule la requête API /weekly/:userId/avatars"""

import mysql.connector

conn = mysql.connector.connect(**DB_CONFIG)
cursor = conn.cursor(dictionary=True)

user_id = 1  # Bruno-admin

print("=" * 70)
print(f"SIMULATION API /weekly/{user_id}/avatars")
print("=" * 70)

# Requête SQL exacte de l'API
query = """
SELECT DISTINCT 
   COALESCE(ua.avatar_id, uwa.avatar_id) as avatar_id,
   COALESCE(ua.unlocked_at, uwa.obtained_at) as obtained_at,
   COALESCE(ua.source, uwa.obtained_from, 'unknown') as obtained_from,
   a.file_path,
   a.code,
   a.category
 FROM user_avatars ua
 LEFT JOIN avatars a ON a.id = ua.avatar_id
 WHERE ua.user_id = %s
 
 UNION
 
 SELECT DISTINCT 
   uwa.avatar_id,
   uwa.obtained_at,
   COALESCE(uwa.obtained_from, 'weekly') as obtained_from,
   a.file_path,
   a.code,
   a.category
 FROM user_weekly_avatars uwa
 LEFT JOIN avatars a ON a.id = uwa.avatar_id
 WHERE uwa.user_id = %s
   AND uwa.avatar_id NOT IN (SELECT avatar_id FROM user_avatars WHERE user_id = %s)
"""

cursor.execute(query, (user_id, user_id, user_id))
rows = cursor.fetchall()

print(f"\nRésultat de la requête: {len(rows)} avatars")
print()

avatars = []
for row in rows:
    file_path = row['file_path']
    avatar_id = row['avatar_id']
    
    if file_path:
        avatar_path = f"/avatars/{file_path}"
    else:
        avatar_path = f"/avatars/380_animal_avatard/{avatar_id}.svg"
    
    avatar = {
        'avatarId': avatar_id,
        'avatarCode': row['code'],
        'avatarPath': avatar_path,
        'category': row['category'],
        'obtainedAt': str(row['obtained_at']),
        'obtainedFrom': row['obtained_from']
    }
    avatars.append(avatar)
    print(f"  {avatar}")

print()
print("=" * 70)
print("RÉPONSE JSON ATTENDUE:")
print("=" * 70)
import json
from python.db_config import DB_CONFIG
print(json.dumps({'avatars': avatars}, indent=2, default=str))

conn.close()
