from .models import Category
from django.db import models

def product_categories(request):
    categories = Category.objects.filter(
        is_active=True,
        parent__isnull=True
    ).prefetch_related(
        models.Prefetch(
            'children',
            queryset=Category.objects.filter(is_active=True, show_in_menu=True).order_by('order', 'name'),
            to_attr='menu_subcategories'
        )
    ).order_by('order', 'name')
    
    return {'product_categories': categories}