import asyncio
import httpx
from sqlalchemy import text
from app.db.session import engine
from datetime import datetime

async def log_discovery(conn, category, brand, model, action):
    await conn.execute(text("""
        INSERT INTO data.bot_discovery_logs (category, brand_name, model_name, action_taken)
        VALUES (:c, :b, :m, :a)
    """), {"c": category, "b": brand, "m": model, "a": action})

async def run_discovery():
    async with engine.begin() as conn:
        print(f"🚀 Jármű felfedezés indul: {datetime.now()}")
        
        # Jelenleg a CAR kategóriára fókuszálunk egy külső API segítségével (pl. NHTSA - Ingyenes)
        # Itt egy példa, hogyan bővül dinamikusan a rendszer
        async with httpx.AsyncClient() as client:
            # Autók lekérése
            response = await client.get("https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json")
            if response.status_code == 200:
                makes = response.json().get('Results', [])[:100] # Tesztként az első 100
                
                for make in makes:
                    brand_name = make['Make_Name'].strip()
                    # Megnézzük, megvan-e már
                    res = await conn.execute(text("SELECT id FROM data.vehicle_brands WHERE name = :n"), {"n": brand_name})
                    if not res.scalar():
                        await conn.execute(text("INSERT INTO data.vehicle_brands (category_id, name) VALUES (1, :n)"), {"n": brand_name})
                        await log_discovery(conn, "CAR", brand_name, "ALL", "NEW_BRAND")
                        print(f"✨ Új márka találva: {brand_name}")
        
        await conn.commit()
        print("✅ Bot futása befejeződött.")

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