"""
Vérification finale de la sécurité complète
"""
from pathlib import Path

print("="*70)
print("🔒 VÉRIFICATION FINALE DE SÉCURITÉ")
print("="*70)
print()

# Chemins
private_api = Path("D:/Jeu/RollerLogic/rollerlogic-api/private")
public_mobile = Path("D:/Jeu/RollerLogic/rollerlogic-mobile/public")

# 1. Contenu SÉCURISÉ dans private/
print("1️⃣  CONTENU SÉCURISÉ (private/)")
print("-"*70)

avatars_animal = list((private_api / "avatars" / "animal").glob("*.svg"))
avatars_cool = list((private_api / "avatars" / "cool").glob("*.png"))
print(f"✅ Avatars animaux: {len(avatars_animal)} fichiers SVG (1-380)")
print(f"✅ Avatars cool: {len(avatars_cool)} fichiers PNG")
print()

ball_skin_dirs = [d for d in (private_api / "ball-skins").iterdir() if d.is_dir()]
total_skins = 0
for ball_dir in sorted(ball_skin_dirs):
    files = list(ball_dir.glob("*.*"))
    total_skins += len(files)
    print(f"✅ Ball skins - {ball_dir.name}: {len(files)} fichiers")
print(f"\n   TOTAL BALL SKINS: {total_skins} fichiers dans {len(ball_skin_dirs)} packs")
print()

# Protection .htaccess
htaccess_avatars = private_api / "avatars" / ".htaccess"
htaccess_balls = private_api / "ball-skins" / ".htaccess"
readme = private_api / "README.md"

print("🛡️  Fichiers de protection:")
print(f"   ✅ {htaccess_avatars.relative_to(Path('D:/Jeu/RollerLogic'))} - {htaccess_avatars.stat().st_size} bytes")
print(f"   ✅ {htaccess_balls.relative_to(Path('D:/Jeu/RollerLogic'))} - {htaccess_balls.stat().st_size} bytes")
print(f"   ✅ {readme.relative_to(Path('D:/Jeu/RollerLogic'))} - {readme.stat().st_size} bytes")
print()

# 2. Contenu PUBLIC (doit être minimal)
print("2️⃣  CONTENU PUBLIC (autorisé)")
print("-"*70)

# Avatars base
base_avatars = list((public_mobile / "avatars" / "base").glob("*.png"))
print(f"✅ Avatars de base (gratuits): {len(base_avatars)} fichiers")

# Vérifier qu'il n'y a pas d'autres avatars
other_avatars = []
for avatar_dir in (public_mobile / "avatars").iterdir():
    if avatar_dir.is_dir() and avatar_dir.name != "base":
        files = list(avatar_dir.glob("*.*"))
        if files:
            other_avatars.extend(files)
            print(f"⚠️  ATTENTION: {avatar_dir.name} contient {len(files)} fichiers !")

if not other_avatars:
    print("✅ Aucun avatar premium dans public/")
print()

# Ball skins publics
ball_base = public_mobile / "images" / "billes" / "bille_base.png"
if ball_base.exists():
    print(f"✅ Bille de base (gratuite): bille_base.png")

# Vérifier qu'il n'y a pas d'autres ball skins
ball_dirs = [d for d in (public_mobile / "images" / "billes").iterdir() if d.is_dir()]
if ball_dirs:
    print(f"⚠️  ATTENTION: {len(ball_dirs)} dossiers trouvés dans public/images/billes/:")
    for ball_dir in ball_dirs:
        files = list(ball_dir.glob("*.*"))
        print(f"   - {ball_dir.name}: {len(files)} fichiers")
else:
    print("✅ Aucun dossier de ball skins dans public/")
print()

# 3. RÉSUMÉ FINAL
print("="*70)
print("📊 RÉSUMÉ DE SÉCURITÉ")
print("="*70)
print()
print("🔒 CONTENU SÉCURISÉ (private/ball-skins/ + private/avatars/):")
print(f"   • {len(avatars_animal)} avatars animaux (1-380)")
print(f"   • {len(avatars_cool)} avatars cool")
print(f"   • {total_skins} ball skins dans {len(ball_skin_dirs)} packs")
print(f"   • TOTAL: {len(avatars_animal) + len(avatars_cool) + total_skins} images premium sécurisées")
print()
print("🌐 CONTENU PUBLIC (public/avatars/base/ + public/images/billes/):")
print(f"   • {len(base_avatars)} avatars de base (gratuits)")
print(f"   • 1 bille de base (gratuite)")
print(f"   • TOTAL: {len(base_avatars) + 1} images gratuites publiques")
print()
print("🔐 PROTECTION:")
print("   • .htaccess dans private/avatars/")
print("   • .htaccess dans private/ball-skins/")
print("   • README.md dans private/")
print("   • API vérifie JWT + ownership avant de servir les images")
print()

if not other_avatars and not ball_dirs:
    print("✅"*20)
    print("✅ SÉCURITÉ 100% VALIDÉE !")
    print("✅ Tous les contenus premium sont protégés")
    print("✅ Seuls les contenus gratuits sont publics")
    print("✅"*20)
else:
    print("⚠️"*20)
    print("⚠️  ATTENTION: Des fichiers premium restent dans public/")
    print("⚠️"*20)

print()
