from .models import StaffProfile, Task
from django.utils import timezone


def staff_context(request):
    context = {}
    if request.user.is_authenticated and hasattr(request.user, 'staff_profile'):
        profile = request.user.staff_profile
        context['staff_profile'] = profile
        context['staff_role'] = profile.role

        my_tasks = Task.objects.filter(
            assigned_to=request.user,
            is_active=True
        ).exclude(status='completed')

        overdue_tasks = my_tasks.filter(
            due_date__lt=timezone.now().date()
        ).count()

        context['staff_my_tasks_count'] = my_tasks.count()
        context['staff_overdue_count'] = overdue_tasks
        context['staff_unread_notifications'] = request.user.system_notifications.filter(is_read=False).count()
        context['staff_recent_notifications'] = request.user.system_notifications.order_by('-created_at')[:6]

        from .models import ApprovalRequest
        context['staff_pending_approvals'] = ApprovalRequest.objects.filter(status='pending').count()

    return context
