#!/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 debug_brand_extraction():
    """调试品牌提取过程"""
    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.线上宝贝名称}")
        
        # 直接测试品牌提取器
        if service.brand_extractor:
            extracted_brand = service.brand_extractor.extract_brand(raw_order.线上宝贝名称)
            candidates = service.brand_extractor._extract_brand_candidates(raw_order.线上宝贝名称)
            
            print(f"品牌候选词: {candidates}")
            print(f"提取品牌: {extracted_brand}")
            
            # 测试完整的解析过程
            parsed_data = await service._parse_order_data(raw_order)
            print(f"解析结果中的品牌: {parsed_data['brand']}")
        
        break

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