"""
Test script to verify suspend/delete routes are registered.
"""
import sys
sys.path.insert(0, '/home/ashraffarid2010/jadwaai.com')

from app import create_app

app = create_app()

with app.app_context():
    print("Checking admin routes for suspend/delete functionality...\n")

    # Get all admin routes
    admin_routes = []
    for rule in app.url_map.iter_rules():
        if rule.rule.startswith('/admin/users'):
            admin_routes.append((rule.rule, rule.endpoint))

    # Sort routes
    admin_routes.sort(key=lambda x: x[0])

    print("Admin User Routes:")
    for route, endpoint in admin_routes:
        methods = getattr(app.url_map._rules_by_endpoint.get(endpoint, [None])[0], 'methods', ['GET'])
        print(f"  {route:45s} -> {endpoint:25s}")

    # Check for our specific routes
    required_endpoints = [
        'admin.users',
        'admin.suspend_user',
        'admin.unsuspend_user',
        'admin.delete_user',
        'admin.restore_user',
    ]

    print("\n" + "="*60)
    print("Route Status:")
    for endpoint in required_endpoints:
        found = any(e == endpoint for _, e in admin_routes)
        status = "✓" if found else "✗"
        print(f"  {status} {endpoint}")

    print("\n" + "="*60)
    print("User Model Fields:")
    from app.models.user import User
    user = User.query.first()

    if user:
        fields_to_check = [
            'is_suspended', 'suspended_at', 'suspended_by_id',
            'suspension_reason', 'deleted_at', 'deleted_by_id'
        ]

        for field in fields_to_check:
            if hasattr(user, field):
                value = getattr(user, field)
                print(f"  ✓ User.{field:20s} = {value}")
            else:
                print(f"  ✗ User.{field:20s} MISSING")
    else:
        print("  No users in database to test")
