import asyncio
from sqlalchemy import text
from app.db.session import SessionLocal, engine
from app.models.user import User, UserRole
from app.core.security import get_password_hash

async def run_fix():
    async with SessionLocal() as db:
        # 1. Ellenőrizzük az oszlopokat (biztonsági játék)
        res = await db.execute(text("SELECT column_name FROM information_schema.columns WHERE table_schema = \u0027data\u0027 AND table_name = \u0027users\u0027"))
        cols = [r[0] for r in res.fetchall()]
        print(f"INFO: Meglévő oszlopok: {cols}")
        
        if "hashed_password" not in cols:
            print("❌ HIBA: A hashed_password oszlop még mindig hiányzik! A migráció nem volt sikeres.")
            return

        # 2. Admin létrehozása
        res = await db.execute(text("SELECT id FROM data.users WHERE email = :e"), {"e": "admin@profibot.hu"})
        if res.fetchone():
            print("⚠ Az admin@profibot.hu már létezik.")
        else:
            admin = User(
                email="admin@profibot.hu",
                hashed_password=get_password_hash("Admin123!"),
                first_name="Admin",
                last_name="Profibot",
                role=UserRole.ADMIN,
                is_superuser=True,
                is_active=True
            )
            db.add(admin)
            await db.commit()
            print("✅ SIKER: Admin felhasználó létrehozva!")

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