from .models import Cart, Wishlist, Category


def cart_count(request):
    count = 0
    try:
        if request.user.is_authenticated:
            cart = Cart.objects.filter(user=request.user).first()
        else:
            if request.session.session_key:
                cart = Cart.objects.filter(session_key=request.session.session_key).first()
            else:
                cart = None
        if cart:
            count = cart.item_count
    except Exception:
        pass
    return {'cart_count': count}


def wishlist_count(request):
    count = 0
    try:
        if request.user.is_authenticated:
            wishlist = Wishlist.objects.filter(user=request.user).first()
            if wishlist:
                count = wishlist.products.count()
    except Exception:
        pass
    return {'wishlist_count': count}


def categories_processor(request):
    categories = Category.objects.filter(is_active=True)[:8]
    return {'nav_categories': categories}
