import os
import django
from django.contrib.auth import get_user_model

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev")
django.setup()

User = get_user_model()

users_to_seed = [
    {
        "email": "lakshit@indovisionadmin.com",
        "password": "Admin@123",
        "role": "ADMIN",
        "full_name": "Super Admin"
    },
    {
        "email": "kunal.verma@indovisionservices.in",
        "password": "Admin@123",
        "role": "ADMIN",
        "full_name": "Kunal Verma"
    },
    {
        "email": "admin@indovisionservices.in",
        "password": "Admin@123",
        "role": "ADMIN",
        "full_name": "System Admin"
    }
]

from apps.authentication import mcp_client

for entry in users_to_seed:
    email = entry["email"]
    password = entry["password"]
    role = entry["role"]
    full_name = entry["full_name"]
    
    user, created = User.objects.get_or_create(email=email, defaults={
        "username": email,
        "role": role,
        "full_name": full_name,
        "is_staff": True,
        "is_superuser": True,
    })
    user.set_password(password)
    user.is_staff = True
    user.is_superuser = True
    user.save()
    
    print(f"User created: {email}")
    print(f"   Created new? {created}")
    
    try:
        user.sync_role_group()
        print(f"   User synced to ADMIN group")
    except Exception as e:
        print(f"   Role sync failed: {e}")
        
    try:
        result = mcp_client.sync_user(email, user.password, user.role)
        print(f"   Synced user to MCP: {result}")
    except Exception as e:
        print(f"   MCP sync failed: {e}")
