#!/usr/bin/env python3
"""
Debug-Script für Gastanträge und Admin-Berechtigungen
"""

from models import get_cached_session, GuestRequest, User, UserPermission
from flask_login import current_user

def check_guest_requests():
    """Prüfe Gastanträge nach Status"""
    print("=== GASTANTRÄGE STATUS ===")
    
    with get_cached_session() as db:
        pending = db.query(GuestRequest).filter_by(status='pending').count()
        approved = db.query(GuestRequest).filter_by(status='approved').count()
        rejected = db.query(GuestRequest).filter_by(status='rejected').count()
        total = db.query(GuestRequest).count()
        
        print(f"Gesamt: {total}")
        print(f"Pending (Wird geprüft): {pending}")
        print(f"Approved (Genehmigt): {approved}")
        print(f"Rejected (Abgelehnt): {rejected}")
        
        if pending == 0:
            print("\n⚠️  PROBLEM: Keine Anträge mit Status 'pending' gefunden!")
            print("   → Die Genehmigen/Ablehnen-Buttons werden nur bei Status 'pending' angezeigt")
            
            # Erstelle einen Test-Antrag
            print("\n🔧 Erstelle Test-Gastantrag...")
            test_request = GuestRequest(
                name="Test Admin",
                email="admin@test.de",
                reason="Test für Admin-Buttons",
                duration_min=30,
                status="pending"
            )
            db.add(test_request)
            db.commit()
            print(f"✅ Test-Antrag erstellt (ID: {test_request.id})")
        else:
            print(f"\n✅ {pending} Anträge mit Status 'pending' gefunden")
            
            # Zeige pending Anträge
            pending_requests = db.query(GuestRequest).filter_by(status='pending').all()
            for req in pending_requests:
                print(f"   ID {req.id}: {req.name} - {req.email}")

def check_admin_users():
    """Prüfe Admin-Benutzer und Berechtigungen"""
    print("\n=== ADMIN-BENUTZER ===")
    
    with get_cached_session() as db:
        # Alle Admins
        admins = db.query(User).filter_by(is_admin=True).all()
        print(f"Admin-Benutzer: {len(admins)}")
        for admin in admins:
            print(f"   {admin.username} (ID: {admin.id}) - Email: {admin.email}")
        
        # Benutzer mit can_approve_jobs
        users_with_approval = db.query(User).join(UserPermission).filter(
            UserPermission.can_approve_jobs == True
        ).all()
        print(f"\nBenutzer mit can_approve_jobs: {len(users_with_approval)}")
        for user in users_with_approval:
            print(f"   {user.username} (ID: {user.id}) - Email: {user.email}")

if __name__ == "__main__":
    try:
        check_guest_requests()
        check_admin_users()
        print("\n=== LÖSUNG ===")
        print("1. Gehen Sie zu: http://127.0.0.1:5000/requests/overview")
        print("2. Öffnen Sie die Browser-Konsole (F12)")
        print("3. Suchen Sie nach 'Admin-Berechtigungen:' in der Konsole")
        print("4. Die Buttons sollten bei Anträgen mit Status 'pending' erscheinen")
        
    except Exception as e:
        print(f"❌ Fehler: {e}")
        import traceback
        traceback.print_exc() 