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 # core from core.apps.evaluation.models.bonus import BonusType, EmployeeBonus from core.apps.evaluation.serializers.bonus.Bonus import BonusTypeCreateSerializer, \ BonusTypeListSerializer, EmployeeBonusSerializer, BonusEmployeeBonusSerializer @extend_schema(tags=["Bonus"]) class BonusTypeView(BaseViewSetMixin, ModelViewSet): queryset = BonusType.objects.all() serializer_class = BonusTypeCreateSerializer action_serializer_class = { 'create': BonusTypeCreateSerializer, 'update': BonusTypeCreateSerializer, 'partial_update': BonusTypeCreateSerializer, 'list': BonusTypeListSerializer, 'retrieve': BonusTypeListSerializer, } action_permission_classes = { 'create': [IsAdminUser], 'update': [IsAdminUser], 'partial_update': [IsAdminUser], 'destroy': [IsAdminUser], 'list': [IsAdminUser], } class BonusEmployeeViewSet(BaseViewSetMixin, ModelViewSet): queryset = EmployeeBonus.objects.all() serializer_class = EmployeeBonusSerializer action_serializer_class = { 'create': BonusEmployeeBonusSerializer, 'update': BonusEmployeeBonusSerializer, 'partial_update': BonusEmployeeBonusSerializer, 'list': EmployeeBonusSerializer, 'retrieve': EmployeeBonusSerializer, } action_permission_classes = { 'create': [IsAdminUser], 'update': [IsAdminUser], 'partial_update': [IsAdminUser], 'destroy': [IsAdminUser], 'list': [IsAdminUser], }