import asyncio
import certifi
from app.config import settings
from app.utils.security import hash_password
from pymongo import AsyncMongoClient

async def update_all_passwords():
    client = AsyncMongoClient(
        settings.mongodb_uri,
        tls=True,
        tlsCAFile=certifi.where(),
        tlsAllowInvalidCertificates=True,
        serverSelectionTimeoutMS=5000,
    )
    db = client[settings.database_name]
    new_hash = hash_password("123456")
    
    # Update all agent records in MongoDB Atlas to password 123456
    res = await db["agents"].update_many(
        {},
        {"$set": {"passwordHash": new_hash}}
    )
    print(f"[SUCCESS] Updated {res.modified_count} agents in MongoDB Atlas to password '123456'!")

    # Print all agents
    cursor = db["agents"].find({})
    async for a in cursor:
        print(f" - Email: {a.get('email')} | Name: {a.get('name')} | Role: {a.get('role')} | Status: {a.get('status')}")

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