#!/usr/bin/env python3
"""Test script to verify Gucci product URL handling"""

import asyncio
import json
from sqlalchemy import select
from app.core.database import AsyncSessionLocal
from app.models.products_master import ProductMaster

async def test_gucci_url():
    async with AsyncSessionLocal() as db:
        # Find the Gucci product
        stmt = select(ProductMaster).where(
            ProductMaster.品牌 == "Gucci",
            ProductMaster.货号 == "693449 XJECA 4697"
        )
        result = await db.execute(stmt)
        product = result.scalar_one_or_none()
        
        if product:
            print(f"产品SKU: {product.sku_key}")
            print(f"品牌: {product.品牌}")
            print(f"货号: {product.货号}")
            print(f"颜色: {product.颜色}")
            print("\n=== 图片URL信息 ===")
            print(f"original_image_urls (raw): {product.original_image_urls}")
            
            # The field is already a list (SQLAlchemy JSON column type)
            if product.original_image_urls:
                urls = product.original_image_urls
                print(f"URLs (already parsed by SQLAlchemy): {urls}")
                
                # Check for escaping issues
                for i, url in enumerate(urls):
                    print(f"\nURL {i+1}:")
                    print(f"  原始: {url}")
                    if "!!" in url:
                        print("  ✓ 包含正确的 '!!' 字符")
                    elif r"\!\!" in url:
                        print("  ✗ 错误转义: 包含 '\\!\\!' ")
                    
                    # Test JSON serialization
                    json_str = json.dumps(urls, ensure_ascii=False)
                    print(f"\nJSON序列化测试:")
                    print(f"  结果: {json_str}")
                    
                    # Test re-parsing
                    reparsed = json.loads(json_str)
                    print(f"  重新解析: {reparsed}")
                    
                    if urls == reparsed:
                        print("  ✓ 序列化/反序列化一致")
                    else:
                        print("  ✗ 序列化/反序列化不一致")
            
            print(f"\nmain_image_path: {product.main_image_path}")
        else:
            print("未找到指定的Gucci产品")

if __name__ == "__main__":
    asyncio.run(test_gucci_url())