import os
import django

# Setup Django environment
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'yatra_testing.settings')
django.setup()

from django.contrib.auth.hashers import make_password
from testing_app.models import Role, User

TEST_PASSWORD = 'Test@123'

TEST_USERS = [
    # (role name,  full name,        email,               phone)
    ('ADMIN',     'System Admin',    'admin@yatra.com',    '9800000001'),
]


def create_test_users():
    print("👥 Creating test users for all 3 roles...\n")

    for role_name, full_name, email, phone in TEST_USERS:
        role, _ = Role.objects.get_or_create(name=role_name)

        user, created = User.objects.update_or_create(
            email=email,
            defaults={
                'role': role,
                'full_name': full_name,
                'phone': phone,
                'password_hash': make_password(TEST_PASSWORD),
                'status': 'ACTIVE',
                'email_verified': True,
                'failed_login_attempts': 0,
                'account_locked_until': None,
            },
        )
        action = 'Created' if created else 'Updated/Reset'
        print(f"   ✅ {action}: {full_name:<15} | role={role_name:<9} | {email}")

    print(f"\nPassword for ALL test users: {TEST_PASSWORD}")
    print(" Login page: http://127.0.0.1:8000/login/")


if __name__ == '__main__':
    create_test_users()