def teacher_pending_enrollments(request):
    """
    Injects sidebar badges for teachers, accounts, and support staff.
    """
    ctx = {
        'sidebar_pending_enrollments': 0,
        'sidebar_pending_cert_payments': 0,
        'sidebar_open_tickets': 0,
        'sidebar_open_inquiries': 0,
    }
    if not request.user.is_authenticated:
        return ctx

    if request.user.role in ('admin', 'accounts_staff'):
        from django.db.models import Q
        from apps.enrollments.models import Enrollment
        from apps.certifications.models import (
            APP_PENDING_PAYMENT,
            APP_PENDING_REATTEMPT,
            CertificationApplication,
        )
        ctx['sidebar_pending_enrollments'] = Enrollment.objects.filter(status='pending').count()
        ctx['sidebar_pending_cert_payments'] = CertificationApplication.objects.filter(
            status__in=[APP_PENDING_PAYMENT, APP_PENDING_REATTEMPT]
        ).filter(Q(payment_proof__isnull=False) & ~Q(payment_proof='')).count()

    if request.user.role in ('admin', 'support_staff'):
        from apps.support.models import ContactInquiry, SupportTicket
        ctx['sidebar_open_tickets'] = SupportTicket.objects.filter(
            status__in=['open', 'in_progress']
        ).count()
        ctx['sidebar_open_inquiries'] = ContactInquiry.objects.filter(is_resolved=False).count()

    return ctx


def site_settings(request):
    """Inject singleton SiteSettings for branding, currency, and payments."""
    from apps.dashboard.models import SiteSettings
    return {'site_settings': SiteSettings.load()}
