from django.contrib.auth.models import User
from .models import Category, SiteSettings, News, Comment, Tag, Advertisement


def global_context(request):
    """Context processor to provide global data to all templates"""
    categories = Category.objects.filter(is_active=True)
    site_settings = SiteSettings.load()

    return {
        'categories': categories,
        'site_settings': site_settings,
    }


def dashboard_stats(request):
    """Context processor for dashboard stats (admin only)"""
    if not request.user.is_authenticated or not request.user.is_staff:
        return {}
    
    return {
        'total_articles': News.objects.count(),
        'published_articles': News.objects.filter(status='published').count(),
        'draft_articles': News.objects.filter(status='draft').count(),
        'total_categories': Category.objects.count(),
        'total_tags': Tag.objects.count(),
        'total_comments': Comment.objects.count(),
        'pending_comments': Comment.objects.filter(is_approved=False).count(),
        'approved_comments': Comment.objects.filter(is_approved=True).count(),
        'total_views': sum(News.objects.values_list('views_count', flat=True)),
        'total_users': User.objects.count(),
    }