#!/usr/bin/env python3
import sys
sys.path.append('backend')

import asyncio
from app.core.database import get_db
from app.services.products_master_service import ProductsMasterService
from app.models.raw_orders import RawOrder
from sqlalchemy import select

async def test_single_product():
    """测试单个产品的处理流程"""
    service = ProductsMasterService()
    
    async for db in get_db():
        await service.initialize_extractors(db)
        
        # 找到特定的测试订单
        result = await db.execute(
            select(RawOrder).where(
                RawOrder.线上宝贝名称.like('%蓝色鳄鱼压纹麻花扣乐福鞋%')
            ).limit(1)
        )
        raw_order = result.scalar_one_or_none()
        
        if not raw_order:
            print("没有找到测试订单")
            return
        
        print(f"处理订单: {raw_order.id}")
        print(f"产品名称: {raw_order.线上宝贝名称}")
        
        # 处理这个订单
        order_result = await service._process_single_order(db, raw_order)
        
        print(f"处理结果: {order_result}")
        
        # 查询处理后的产品记录
        from app.models.products_master import ProductMaster
        result = await db.execute(
            select(ProductMaster).where(
                ProductMaster.线上宝贝名称.like('%蓝色鳄鱼压纹麻花扣乐福鞋%')
            )
        )
        product = result.scalar_one_or_none()
        
        if product:
            print(f"数据库中的品牌: {product.品牌}")
        else:
            print("没有找到产品记录")
        
        break

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