#!/usr/bin/env python3
import os
import shutil
from pathlib import Path

def collect_phat_images():
    """Collect all PHAT-related images from the workspace"""
    
    # Create the collection directory
    output_dir = "public/all-phat-visuals"
    os.makedirs(output_dir, exist_ok=True)
    
    # Find all PHAT-related images
    workspace = Path("/root/.openclaw/workspace")
    
    image_files = []
    
    # Search for PHAT-related images
    for pattern in ["**/phat*", "**/phat-*", "**/s4v*"]:
        for ext in ["*.png", "*.jpg", "*.jpeg"]:
            image_files.extend(workspace.glob(f"{pattern}/{ext}"))
            image_files.extend(workspace.glob(f"{pattern}/**/{ext}"))
    
    # Also include the direct PHAT slide images
    slide_dirs = [
        "public/phat-slides/images",
        "products/phat-foods/hero-shots", 
        "phat-deck-images",
        "phat_deck_extracted/ppt/media",
        "public/phat-foods/logos",
        "phat-foods/style-refs",
        "projects/phat-foods/pdf-pages"
    ]
    
    for slide_dir in slide_dirs:
        slide_path = workspace / slide_dir
        if slide_path.exists():
            for ext in ["*.png", "*.jpg", "*.jpeg"]:
                image_files.extend(slide_path.glob(f"**/{ext}"))
    
    # Remove duplicates
    unique_files = list(set(image_files))
    
    copied_count = 0
    categories = {
        'slide4_versions': 0,
        'hero_shots': 0,
        'logos': 0,
        'charts': 0,
        'deck_media': 0,
        'other': 0
    }
    
    for img_file in unique_files:
        if img_file.is_file():
            try:
                # Create a clean filename
                filename = img_file.name
                
                # Categorize
                if 's4v' in filename:
                    category = 'slide4_versions'
                    categories['slide4_versions'] += 1
                elif any(x in str(img_file) for x in ['hero-shots', 'r7-', 'cover-', 'heart-', 'grown-', 'opp-']):
                    category = 'hero_shots'
                    categories['hero_shots'] += 1
                elif 'logo' in str(img_file):
                    category = 'logos'
                    categories['logos'] += 1
                elif 'chart' in filename or 'science' in filename:
                    category = 'charts'
                    categories['charts'] += 1
                elif 'image' in filename and filename.startswith('image'):
                    category = 'deck_media'
                    categories['deck_media'] += 1
                else:
                    category = 'other'
                    categories['other'] += 1
                
                # Create category subdirectory
                category_dir = f"{output_dir}/{category}"
                os.makedirs(category_dir, exist_ok=True)
                
                # Copy file
                dest_path = f"{category_dir}/{filename}"
                shutil.copy2(img_file, dest_path)
                copied_count += 1
                
                print(f"✅ {category}: {filename}")
                
            except Exception as e:
                print(f"❌ Error copying {img_file}: {e}")
    
    return copied_count, categories

def create_zip():
    """Create the final zip file"""
    os.system('cd public && zip -r all-phat-visuals-complete.zip all-phat-visuals/')
    
    zip_path = "public/all-phat-visuals-complete.zip"
    if os.path.exists(zip_path):
        size_mb = os.path.getsize(zip_path) / 1024 / 1024
        return size_mb
    return 0

def main():
    print("🎨 Collecting all PHAT visuals from workspace...")
    
    copied_count, categories = collect_phat_images()
    
    print(f"\n📊 Collection Summary:")
    print(f"   Slide 4 Versions: {categories['slide4_versions']} files")
    print(f"   Hero Shots: {categories['hero_shots']} files")  
    print(f"   Logos: {categories['logos']} files")
    print(f"   Charts/Science: {categories['charts']} files")
    print(f"   Deck Media: {categories['deck_media']} files")
    print(f"   Other: {categories['other']} files")
    print(f"   Total: {copied_count} files copied")
    
    if copied_count > 0:
        print(f"\n📦 Creating zip file...")
        size_mb = create_zip()
        print(f"✅ Created: public/all-phat-visuals-complete.zip")
        print(f"📦 Size: {size_mb:.1f} MB")
        print(f"🌐 Download URL: http://95.216.147.157:8800/all-phat-visuals-complete.zip")
    else:
        print("❌ No images found to zip")

if __name__ == "__main__":
    main()