#!/usr/bin/env python3
"""
测试品牌筛选功能 - 验证品牌列表实时同步
"""

import requests
import json

BASE_URL = "http://localhost:8000/api/v1"

def test_brand_filtering():
    print("=" * 60)
    print("品牌筛选功能测试")
    print("=" * 60)
    
    # Test 1: 无筛选条件
    print("\n1. 获取所有品牌（无筛选）")
    resp = requests.get(f"{BASE_URL}/products-master/brands")
    data = resp.json()
    total_brands = len(data['data'])
    print(f"   总品牌数: {total_brands}")
    print(f"   示例品牌: {data['data'][:5]}")
    
    # Test 2: 按采购方式筛选
    print("\n2. 按采购方式筛选品牌")
    for method in ['NY', 'LA', 'MC', 'GN', 'AT']:
        resp = requests.get(f"{BASE_URL}/products-master/brands", 
                           params={'procurement_method': method})
        data = resp.json()
        print(f"   {method}: {len(data['data'])} 个品牌")
    
    # Test 3: 按商品名称筛选
    print("\n3. 按商品名称筛选品牌")
    test_names = ['Tods', 'Stuart', 'Vince', '女款']
    for name in test_names:
        resp = requests.get(f"{BASE_URL}/products-master/brands", 
                           params={'product_name': name})
        data = resp.json()
        print(f"   包含'{name}': {len(data['data'])} 个品牌")
        if data['data']:
            print(f"      品牌列表: {data['data'][:3]}")
    
    # Test 4: 组合筛选
    print("\n4. 组合筛选测试")
    
    # 4.1 NY + Tods
    resp = requests.get(f"{BASE_URL}/products-master/brands", 
                       params={'procurement_method': 'NY', 'product_name': 'Tods'})
    data = resp.json()
    print(f"   NY + Tods: {data['data']}")
    
    # 4.2 MC + 女款
    resp = requests.get(f"{BASE_URL}/products-master/brands", 
                       params={'procurement_method': 'MC', 'product_name': '女款'})
    data = resp.json()
    print(f"   MC + 女款: {len(data['data'])} 个品牌")
    
    # Test 5: 验证动态更新
    print("\n5. 验证品牌列表动态更新")
    
    # 5.1 获取第一页产品
    resp = requests.get(f"{BASE_URL}/products-master/list", 
                       params={'page': 1, 'page_size': 10})
    products = resp.json()['data']['items']
    
    # 5.2 提取产品品牌
    product_brands = set()
    for product in products:
        if product.get('品牌'):
            product_brands.add(product['品牌'])
    
    print(f"   当前页产品品牌: {product_brands}")
    
    # 5.3 按这些产品的采购方式筛选
    if products:
        method = products[0].get('procurement_method')
        resp = requests.get(f"{BASE_URL}/products-master/brands", 
                           params={'procurement_method': method})
        data = resp.json()
        print(f"   采购方式 {method} 下的品牌包含: {product_brands.issubset(set(data['data']))}")
    
    print("\n" + "=" * 60)
    print("✅ 品牌筛选功能测试完成")
    print("品牌列表会根据当前筛选条件实时更新，只显示符合条件的产品品牌")
    print("=" * 60)

if __name__ == "__main__":
    test_brand_filtering()