#!/usr/bin/env python3
"""
Final test for asset custom status support
"""

import requests

BASE_URL = 'http://localhost:8000'

def login():
    """Login and get access token"""
    response = requests.post(f'{BASE_URL}/auth/login', json={'email': 'admin@vfx.com', 'password': 'admin123'})
    if response.status_code != 200:
        print("❌ Login failed")
        return None
    return response.json()['access_token']

def test_asset_optimization():
    token = login()
    if not token:
        return
    
    headers = {'Authorization': f'Bearer {token}'}
    
    # Get assets with optimized query
    response = requests.get(f'{BASE_URL}/assets/?project_id=10', headers=headers)
    print(f"Get assets - Status: {response.status_code}")
    
    if response.status_code == 200:
        assets = response.json()
        print(f"Found {len(assets)} assets")
        
        if assets:
            asset = assets[0]
            task_status = asset.get('task_status', {})
            task_details = asset.get('task_details', [])
            
            print(f"Asset: {asset['name']}")
            print(f"Task status: {task_status}")
            print(f"Task details count: {len(task_details)}")
            
            # Check for custom statuses
            custom_status_found = False
            for task_type, status in task_status.items():
                if status not in ['not_started', 'in_progress', 'submitted', 'approved', 'retake']:
                    custom_status_found = True
                    print(f"✅ Found custom status in task_status: {task_type} = {status}")
            
            # Check task details
            for task_detail in task_details:
                status = task_detail.get('status')
                if status not in ['not_started', 'in_progress', 'submitted', 'approved', 'retake']:
                    custom_status_found = True
                    print(f"✅ Found custom status in task_details: {task_detail['task_type']} = {status}")
            
            if custom_status_found:
                print("🎉 Asset optimization with custom statuses: PASSED")
            else:
                print("❌ No custom statuses found in asset optimization")
        else:
            print("No assets found")
    else:
        print(f"Failed to get assets: {response.text}")

if __name__ == "__main__":
    test_asset_optimization()