import asyncio
import json
from app.database import AsyncSessionLocal
from sqlalchemy import text

async def repair_cars():
    async with AsyncSessionLocal() as db:
        # Javított lekérdezés: make, model és year oszlopokat használunk name helyett
        query = text("""
            SELECT id, make, model, year, url 
            FROM vehicle.catalog_discovery 
            WHERE status = 'incomplete' OR status = 'pending'
            ORDER BY id ASC
            LIMIT 5
        """)
        try:
            res = await db.execute(query)
            cars = res.fetchall()

            if not cars:
                print("✨ Nincs több javítandó autó a listában!")
                return

            for car_id, make, model, year, url in cars:
                full_name = f"{year} {make} {model}"
                print(f"\n🚗 JÁRMŰ: {full_name}")
                print(f"🔗 LINK: {url}")
                print("-" * 30)
                
                # Itt írhatod be a hiányzó adatokat
                val = input("Írd be a műszaki adatokat (pl. '150 HP, 1998cc') vagy 'skip': ")
                
                if val.lower() != 'skip':
                    # A JSONB mezőt frissítjük a kézi javítással
                    data_update = {"manual_fix": val}
                    await db.execute(text("""
                        UPDATE vehicle.catalog_discovery 
                        SET raw_data = raw_data || :data, status = 'ready_for_catalog' 
                        WHERE id = :id
                    """), {"data": json.dumps(data_update), "id": car_id})
                    await db.commit()
                    print(f"✅ {full_name} mentve és kész a katalógusba tolásra!")

        except Exception as e:
            print(f"❌ Hiba történt: {e}")

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