from django_core.mixins import BaseViewSetMixin from drf_spectacular.utils import extend_schema from rest_framework.permissions import AllowAny, IsAdminUser from rest_framework.viewsets import ModelViewSet from core.apps.companies.models import CompanyFolderModel from core.apps.companies.serializers.folders import ( CreateCompanyFolderSerializer, ListCompanyFolderSerializer, RetrieveCompanyFolderSerializer, UpdateCompanyFolderSerializer, DestroyCompanyFolderSerializer ) @extend_schema(tags=["CompanyFolder"]) class CompanyFolderView(BaseViewSetMixin, ModelViewSet): queryset = CompanyFolderModel.objects.all() serializer_class = ListCompanyFolderSerializer permission_classes = [AllowAny] action_permission_classes = { "list": [IsAdminUser], "retrieve": [IsAdminUser], "create": [IsAdminUser], "update": [IsAdminUser], "destroy": [IsAdminUser], } action_serializer_class = { "list": ListCompanyFolderSerializer, "retrieve": RetrieveCompanyFolderSerializer, "create": CreateCompanyFolderSerializer, "update": UpdateCompanyFolderSerializer, "destroy": DestroyCompanyFolderSerializer, }