#!/usr/bin/env python3
"""
调试货号提取的完整过程
"""

import sys
import os
import re

# 添加项目根目录到路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__)))

from app.utils.text_parser import ProductCodeExtractor

def debug_extraction():
    """调试货号提取过程"""
    
    extractor = ProductCodeExtractor()
    test_cases = [
        "Burberry 男款衬衫 8084328/8084329/8084330 代购8.16",
        "Burberry 女款手袋 81234567/81234568 代购8.18",
    ]
    
    print("=== 货号提取过程调试 ===")
    
    for i, test_name in enumerate(test_cases, 1):
        print(f"\n测试 {i}: {test_name}")
        
        # 手动模拟提取过程
        bracket_processor = extractor.bracket_processor
        bracket_result = bracket_processor.process_bracket_content(test_name)
        
        print(f"  方括号处理结果: {bracket_result}")
        
        if not bracket_result["extracted_codes"]:
            # 模拟品牌移除
            clean_name = extractor._remove_brand(bracket_result["cleaned_text"], "Burberry")
            print(f"  品牌移除后: '{clean_name}'")
            
            # 测试每个模式
            code_patterns = [
                (r'\d{2,}\.\d{3,}', "小数点格式"),
                (r'\d{3,}[-]\d{2,}', "数字-数字格式"),
                (r'(?<!\d\.)\d{6,}(?:[/]\d{6,})+(?!\.\d)', "Burberry /分隔多颜色"),
                (r'(?<!\d\.)\d{6,}(?:[\s/]\d{6,})+(?!\.\d)', "Burberry 混合分隔"),
                (r'(?<!\d\.)\d{3,}(?:\s+\d{3,})+(?!\.\d)', "McQueen 空格分隔"),
                (r'(?<!\d)\d{6,8}(?!\d)', "6-8位纯数字"),
            ]
            
            codes = []
            for pattern, desc in code_patterns:
                matches = re.findall(pattern, clean_name)
                for match in matches:
                    if not extractor._is_brand_name(match):
                        codes.append(match)
                        print(f"  ✅ {desc}: '{match}'")
                    else:
                        print(f"  ❌ {desc}: '{match}' (被过滤为品牌名)")
                        
            print(f"  所有候选码: {codes}")
            
            # 最终提取结果
            result = extractor.extract_product_code(test_name, "Burberry")
            print(f"  最终提取: '{result}'")

if __name__ == "__main__":
    debug_extraction()