#!/usr/bin/env python3
"""
Force regenerate products master table with new extraction logic
"""
import asyncio
import sys
import os
sys.path.append('backend')

# Set environment to use SQLite
os.environ['DATABASE_URL'] = 'sqlite+aiosqlite:///backend/ordersys.db'

from app.core.database import AsyncSessionLocal
from app.services.products_master_service import ProductsMasterService

async def main():
    print("Starting forced regeneration of products master table...")
    
    async with AsyncSessionLocal() as db:
        service = ProductsMasterService()
        
        try:
            print("Clearing existing products master table...")
            # This will force rebuild with new logic
            result = await service.generate_products_master(db, force_rebuild=True)
            
            print(f"✅ Success! Generated {result.get('generated_count', 0)} products")
            print(f"Processing time: {result.get('processing_time_seconds', 0):.2f} seconds")
            
        except Exception as e:
            print(f"❌ Error: {str(e)}")
            import traceback
            traceback.print_exc()

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