import sys
import os
from pymongo import MongoClient
from passlib.context import CryptContext

# Configuration
MONGODB_URI = "mongodb+srv://ai_db:xkwnJe4M5wt9@ai-cluster.uuw1key.mongodb.net/ai_db"
DB_NAME = "rera_ai_db"
EMAIL = "admin@gmail.com"
PASSWORD = "admin123"

pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")

def get_password_hash(password):
    return pwd_context.hash(password)

def create_admin():
    client = MongoClient(MONGODB_URI)
    db = client[DB_NAME]
    admins_collection = db["admins"]

    # Check if user already exists
    existing = admins_collection.find_one({"email": EMAIL})
    if existing:
        print(f"User with email {EMAIL} already exists. Updating password...")
        admins_collection.update_one(
            {"email": EMAIL},
            {"$set": {"password": get_password_hash(PASSWORD)}}
        )
        print("Password updated successfully!")
    else:
        admin_doc = {
            "email": EMAIL,
            "username": "admin",
            "password": get_password_hash(PASSWORD),
            "full_name": "System Administrator",
            "role_id": None
        }
        admins_collection.insert_one(admin_doc)
        print(f"Admin user created successfully with email: {EMAIL}")

if __name__ == "__main__":
    create_admin()
