from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView

from .models import Menu
from .serializers import MenuItemSerializer


class MenuView(APIView):
    permission_classes = [IsAuthenticated]

    def get(self, request):

        menu_items = Menu.objects.filter(
            is_active=True
        )

        allowed_items = []

        for item in menu_items:

            # Menu بدون permission برای همه کاربران
            if not item.permission:
                allowed_items.append(item)
                continue

            # بررسی Permission کاربر
            if request.user.has_perm(item.permission):
                allowed_items.append(item)

        serializer = MenuItemSerializer(
            allowed_items,
            many=True
        )

        return Response(serializer.data)
