#!/usr/bin/env python3
"""
直接测试API响应
"""
import requests
import json

def test_api_response():
    """测试API响应"""
    print("测试API响应...")
    print("=" * 80)
    
    try:
        # 测试基本的产品列表
        print("1. 测试基本产品列表:")
        print("-" * 40)
        
        url = "http://localhost:8000/api/v1/products-master/list"
        params = {
            'page': 1,
            'page_size': 2
        }
        
        response = requests.get(url, params=params, timeout=10)
        print(f"状态码: {response.status_code}")
        
        if response.status_code == 200:
            data = response.json()
            print(f"响应数据结构:")
            print(f"  success: {data.get('success')}")
            print(f"  items数量: {len(data.get('data', {}).get('items', []))}")
            
            items = data.get('data', {}).get('items', [])
            if items:
                print(f"\n前2个产品的品牌:")
                for i, item in enumerate(items, 1):
                    print(f"  {i}. ID:{item.get('id')} - 品牌:'{item.get('品牌')}'")
                    print(f"     名称: {item.get('线上宝贝名称', '')[:50]}...")
        else:
            print(f"API错误: {response.status_code}")
            print(f"响应: {response.text}")
        
        # 2. 测试搜索卡其色麻花拖鞋
        print(f"\n\n2. 搜索卡其色麻花拖鞋:")
        print("-" * 40)
        
        search_params = {
            'product_name': '卡其色麻花拖鞋',
            'page': 1,
            'page_size': 5
        }
        
        search_response = requests.get(url, params=search_params, timeout=10)
        print(f"搜索状态码: {search_response.status_code}")
        
        if search_response.status_code == 200:
            search_data = search_response.json()
            search_items = search_data.get('data', {}).get('items', [])
            
            print(f"搜索到 {len(search_items)} 个产品:")
            for i, item in enumerate(search_items, 1):
                print(f"\n{i}. 产品详情:")
                print(f"   ID: {item.get('id')}")
                print(f"   名称: {item.get('线上宝贝名称')}")
                print(f"   品牌: '{item.get('品牌')}'")
                print(f"   货号: '{item.get('货号')}'")
                
                # 检查品牌是否正确
                brand = item.get('品牌')
                if brand == 'Tods':
                    print(f"   ✅ API返回的品牌正确")
                else:
                    print(f"   ❌ API返回的品牌错误: '{brand}'")
                    if '卡其色' in brand:
                        print(f"   ⚠️ 品牌包含颜色信息")
                    if '麻花拖鞋' in brand:
                        print(f"   ⚠️ 品牌包含产品类型信息")
        else:
            print(f"搜索API错误: {search_response.status_code}")
            print(f"搜索响应: {search_response.text}")
        
        # 3. 测试品牌筛选
        print(f"\n\n3. 测试Tods品牌筛选:")
        print("-" * 40)
        
        brand_params = {
            'brand': 'Tods',
            'page': 1,
            'page_size': 3
        }
        
        brand_response = requests.get(url, params=brand_params, timeout=10)
        print(f"品牌筛选状态码: {brand_response.status_code}")
        
        if brand_response.status_code == 200:
            brand_data = brand_response.json()
            brand_items = brand_data.get('data', {}).get('items', [])
            total = brand_data.get('data', {}).get('pagination', {}).get('total', 0)
            
            print(f"Tods品牌总数: {total}")
            print(f"返回items: {len(brand_items)}")
            
            if brand_items:
                for i, item in enumerate(brand_items, 1):
                    print(f"\n{i}. ID:{item.get('id')}")
                    print(f"   品牌: '{item.get('品牌')}'")
                    print(f"   名称: {item.get('线上宝贝名称', '')[:50]}...")
            else:
                print("❌ 品牌筛选没有返回任何产品")
        
    except requests.exceptions.RequestException as e:
        print(f"请求错误: {e}")
    except Exception as e:
        print(f"其他错误: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    test_api_response()