import asyncio
import os
import sys

# Ensure backend directory is in path
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from types import SimpleNamespace
from agent.tools.product_search_helpers import build_starrocks_query
from common.starrocks_connection import get_db_connection

async def main():
    sr = get_db_connection()
    
    print("=====================================================")
    print("🧪 KỊCH BẢN 1: THEO ĐÚNG LOG LANGFUSE CON AI ĐÃ CHẠY:")
    print("   product_name: 'Áo sơ mi xanh lá'")
    print("   color: 'xanh lá'")
    print("=====================================================")
    params1 = SimpleNamespace(
        description="product_name: Áo sơ mi xanh lá",
        product_name="Áo sơ mi xanh lá",
        gender_by_product=None,
        age_by_product=None,
        master_color="xanh lá",
        price_min=None,
        price_max=None,
        discount_min=None,
        discount_max=None,
        magento_ref_code=None,
        discovery_mode=None
    )
    
    # AI sẽ tự fetch Embedding thật 1536 chiều từ OpenAI (Bằng hàm create_embedding_async bên trong)
    sql1, sql_params1 = await build_starrocks_query(params1)
    # The output from build_starrocks_query is the exact SQL String and parameters
    print("\n[SQL 1 - TỪ KHÓA TÊN SẢN PHẨM KHỚP SQL SẼ TẠO LÀ]:")
    print(sql_params1)
    
    # Run the query directly on DB
    try:
        rows1 = await sr.execute_query_async(sql1, sql_params1)
        print(f"\n=> KẾT QUẢ KỊCH BẢN 1: Tìm thấy {len(rows1)} sản phẩm (MISS QUERY!).")
    except Exception as e:
        print(f"\n=> KẾT QUẢ KỊCH BẢN 1: Lỗi thực thi SQL: {e}")

    print("\n\n=====================================================")
    print("🧪 KỊCH BẢN 2: CHỮA BỆNH CHO CON AI (BỎ CHỮ 'xanh lá' RA KHỎI TÊN)")
    print("   product_name: 'Áo sơ mi'")
    print("   color: 'xanh lá'")
    print("=====================================================")
    params2 = SimpleNamespace(
        description="product_name: Áo sơ mi xanh lá",
        product_name="Áo sơ mi", # Đã bỏ chữ xanh lá ở đây
        gender_by_product=None,
        age_by_product=None,
        master_color="xanh lá",
        price_min=None,
        price_max=None,
        discount_min=None,
        discount_max=None,
        magento_ref_code=None,
        discovery_mode=None
    )
    
    sql2, sql_params2 = await build_starrocks_query(params2)
    print("\n[SQL 2 - TỪ KHÓA TÊN SẢN PHẨM THỰC TẾ TRÚNG LÚC NÀY]:")
    print(sql_params2)
    
    try:
        rows2 = await sr.execute_query_async(sql2, sql_params2)
        print(f"\n=> KẾT QUẢ KỊCH BẢN 2: Tìm thấy {len(rows2)} sản phẩm (MATCH NGON Ơ!).")
        for i, row in enumerate(rows2[:3]):
            print(f"   [{i+1}]. Sản phẩm: '{row.get('product_name')}' - MÀU: '{row.get('master_color')}'")
        if len(rows2) > 3:
            print("   ...")
    except Exception as e:
         print(f"Lỗi: {e}")

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