"""
Migration finale : déplace les ball skins restants et nettoie public/
"""
import os
import shutil
from pathlib import Path

# Chemins
public_billes = Path("D:/Jeu/RollerLogic/rollerlogic-mobile/public/images/billes")
private_billes = Path("D:/Jeu/RollerLogic/rollerlogic-api/private/ball-skins")

print("="*70)
print("MIGRATION FINALE DES BALL SKINS")
print("="*70)
print()

# Dossiers à déplacer (pas encore dans private/)
to_move = [
    "dragon_ball",
    "glossy-black-sphere-abstract-design-3d-render",
    "jeux",
    "noel",
    "paques",
    "st_valentin",
    "verre"
]

# Dossiers vides à supprimer
to_delete = [
    "design_unique",
    "elementaires", 
    "halloween",
    "varie"
]

# 1. DÉPLACER les nouveaux dossiers
print("1️⃣  DÉPLACEMENT DES NOUVEAUX DOSSIERS")
print("-"*70)
for folder_name in to_move:
    src = public_billes / folder_name
    dst = private_billes / folder_name
    
    if src.exists():
        file_count = len([f for f in src.iterdir() if f.is_file()])
        print(f"  ➡️  Déplacement de {folder_name} ({file_count} fichiers)...")
        
        if dst.exists():
            print(f"     ⚠️  Destination existe déjà, fusion...")
            # Copier les fichiers un par un
            for file in src.iterdir():
                if file.is_file():
                    shutil.copy2(file, dst / file.name)
            # Supprimer le dossier source
            shutil.rmtree(src)
        else:
            # Déplacer tout le dossier
            shutil.move(str(src), str(dst))
        
        print(f"     ✅ Déplacé vers private/ball-skins/{folder_name}")
    else:
        print(f"  ⚠️  {folder_name}: n'existe pas dans public/")

print()

# 2. SUPPRIMER les dossiers vides
print("2️⃣  SUPPRESSION DES DOSSIERS VIDES")
print("-"*70)
for folder_name in to_delete:
    folder = public_billes / folder_name
    
    if folder.exists():
        file_count = len([f for f in folder.iterdir() if f.is_file()])
        
        if file_count == 0:
            print(f"  🗑️  Suppression de {folder_name} (vide)...")
            shutil.rmtree(folder)
            print(f"     ✅ Supprimé")
        else:
            print(f"  ⚠️  {folder_name}: CONTIENT {file_count} fichiers, PAS supprimé!")
    else:
        print(f"  ℹ️  {folder_name}: n'existe plus")

print()

# 3. VÉRIFICATION FINALE
print("3️⃣  VÉRIFICATION FINALE")
print("-"*70)

print("\nDossiers restants dans public/images/billes/:")
remaining = [f for f in public_billes.iterdir() if f.is_dir()]
if remaining:
    for folder in remaining:
        file_count = len([f for f in folder.iterdir() if f.is_file()])
        print(f"  - {folder.name}: {file_count} fichiers")
else:
    print("  ✅ Aucun dossier restant (uniquement bille_base.png)")

print("\nDossiers dans private/ball-skins/:")
private_folders = [f for f in private_billes.iterdir() if f.is_dir()]
for folder in sorted(private_folders):
    file_count = len([f for f in folder.iterdir() if f.is_file()])
    print(f"  ✅ {folder.name}: {file_count} fichiers")

print()
print("="*70)
print("MIGRATION TERMINÉE !")
print("="*70)
print(f"\n📊 RÉSUMÉ:")
print(f"  - {len(to_move)} dossiers déplacés vers private/")
print(f"  - {len(to_delete)} dossiers vides supprimés")
print(f"  - {len(private_folders)} dossiers sécurisés dans private/ball-skins/")
print()
