import psycopg2
import os
from config import ADMIN_CONFIG
import urllib.parse

def debug_user_auth():
    """Debug user authentication and role checking"""
    try:
        # Parse the DATABASE_URL to extract connection parameters
        parsed = urllib.parse.urlparse(ADMIN_CONFIG['DATABASE_URL'])
        conn = psycopg2.connect(
            host=parsed.hostname,
            port=parsed.port,
            database=parsed.path[1:],  # Remove the leading '/'
            user=parsed.username,
            password=urllib.parse.unquote(parsed.password) if parsed.password else ''
        )
        
        cursor = conn.cursor()
        
        # Find the admin user
        print("=== FINDING ADMIN USER ===")
        cursor.execute("""
            SELECT u.user_id, u.email, u.first_name, u.last_name, u.role_id, ur.role_name
            FROM users u
            LEFT JOIN user_roles ur ON u.role_id = ur.role_id
            WHERE u.email = 'fafakos@qq.com'
        """)
        user = cursor.fetchone()
        
        if user:
            print(f"User ID: {user[0]}")
            print(f"Email: {user[1]}")
            print(f"Name: {user[2]} {user[3]}")
            print(f"Role ID: {user[4]}")
            print(f"Role Name: {user[5]}")
            
            # Check if role name is 'admin'
            if user[5] and user[5].lower() == 'admin':
                print("✅ User has admin role")
            else:
                print("❌ User does not have admin role")
        else:
            print("❌ Admin user not found")
        
        conn.close()
        
    except Exception as e:
        print(f"Error: {e}")

if __name__ == "__main__":
    debug_user_auth()