from django.conf import settings


def site_context(request):
    """Adds site-wide constants and, for logged-in users, live counters (unread messages/notifications)."""
    context = {
        "SITE_NAME": "Acco",
        "ACCO_DEFAULT_CURRENCY": getattr(settings, "ACCO_DEFAULT_CURRENCY", "MWK"),
    }

    if request.user.is_authenticated:
        from core.models import Notification, Conversation

        context["unread_notifications_count"] = Notification.objects.filter(
            user=request.user, is_read=False
        ).count()
        context["unread_messages_count"] = sum(
            c.unread_count_for(request.user)
            for c in Conversation.objects.filter(participants=request.user)
        )
    else:
        # Top-level categories for the nav, cached lightly per-request only (fine for a starter app)
        pass

    from core.models import Category
    context["nav_categories"] = Category.objects.filter(parent__isnull=True, is_active=True).order_by("order", "name")

    return context
