"""
Script pour vérifier et déplacer les ball skins restants vers private/
"""
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("ANALYSE DES DOSSIERS DE BALL SKINS")
print("="*70)
print()

# 1. Lister les dossiers dans public/
print("1️⃣  DOSSIERS DANS PUBLIC/images/billes/")
print("-"*70)
public_folders = [f for f in public_billes.iterdir() if f.is_dir()]
for folder in sorted(public_folders):
    file_count = len([f for f in folder.iterdir() if f.is_file()])
    print(f"  📁 {folder.name}: {file_count} fichiers")
print()

# 2. Lister les dossiers dans private/
print("2️⃣  DOSSIERS DANS PRIVATE/ball-skins/")
print("-"*70)
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()

# 3. Identifier les dossiers à déplacer (dans public mais pas dans private)
print("3️⃣  ANALYSE DES DÉPLACEMENTS")
print("-"*70)
to_move = []
duplicates = []

for pub_folder in public_folders:
    priv_folder = private_billes / pub_folder.name
    
    if priv_folder.exists():
        # Vérifier si les contenus sont identiques
        pub_files = set([f.name for f in pub_folder.iterdir() if f.is_file()])
        priv_files = set([f.name for f in priv_folder.iterdir() if f.is_file()])
        
        if pub_files == priv_files:
            duplicates.append(pub_folder.name)
            print(f"  ♻️  {pub_folder.name}: DUPLIQUÉ (identique dans private/)")
        else:
            print(f"  ⚠️  {pub_folder.name}: EXISTE dans private/ mais DIFFÉRENT")
            print(f"      Public: {len(pub_files)} fichiers | Private: {len(priv_files)} fichiers")
            only_in_public = pub_files - priv_files
            if only_in_public:
                print(f"      Uniquement dans public: {', '.join(list(only_in_public)[:3])}")
    else:
        to_move.append(pub_folder.name)
        print(f"  ➡️  {pub_folder.name}: À DÉPLACER vers private/")

print()

# 4. Résumé
print("="*70)
print("RÉSUMÉ")
print("="*70)
print(f"✅ Dossiers à déplacer: {len(to_move)}")
for name in to_move:
    print(f"   - {name}")
print()
print(f"♻️  Dossiers dupliqués (supprimables): {len(duplicates)}")
for name in duplicates:
    print(f"   - {name}")
print()

# 5. Actions proposées
if to_move:
    print("⚡ ACTIONS PROPOSÉES:")
    print("   1. Déplacer les nouveaux dossiers vers private/ball-skins/")
    for name in to_move:
        pub = public_billes / name
        priv = private_billes / name
        print(f"      {pub} → {priv}")
    print()

if duplicates:
    print("   2. Supprimer les dossiers dupliqués dans public/")
    for name in duplicates:
        pub = public_billes / name
        print(f"      DELETE: {pub}")
    print()

print("="*70)
