import asyncio
from sqlalchemy import select
from app.core.database import AsyncSessionLocal
from app.models.models import DeviceCredential, OLTDevice


async def main():
    async with AsyncSessionLocal() as db:
        olts = (await db.execute(select(OLTDevice))).scalars().all()
        credentials = (await db.execute(select(DeviceCredential).where(DeviceCredential.is_active.is_(True)))).scalars().all()
        for olt in olts:
            print(f"olt={olt.id}|{olt.name}|vendor={olt.vendor}|model={olt.model}|protocol={olt.management_protocol}|credential_assigned={bool(olt.credential_id)}")
        print(f"active_credentials={len(credentials)}")
        for credential in credentials:
            print(f"credential={credential.id}|protocol={credential.protocol}|username_present={bool(credential.username)}")


asyncio.run(main())
