from django_core.mixins import BaseViewSetMixin from drf_spectacular.utils import extend_schema from rest_framework import viewsets from rest_framework.permissions import IsAdminUser from rest_framework.viewsets import ModelViewSet # core from core.apps.evaluation.models.bonus import BonusCategory, EmployeeBonus, BaseValueBonus from core.apps.evaluation.serializers.bonus.Bonus import BonusCategorySerializer, \ BonusCategoryListSerializer, EmployeeBonusListSerializer, BonusEmployeeBonusSerializer, BaseBonusSerializer @extend_schema(tags=["BaseBonus"]) class BaseBonusViewSet(BaseViewSetMixin, viewsets.ModelViewSet): queryset = BaseValueBonus.objects.all() serializer_class = BaseBonusSerializer @extend_schema(tags=["Bonus-Category"]) class BonusTypeView(BaseViewSetMixin, ModelViewSet): queryset = BonusCategory.objects.all() serializer_class = BonusCategorySerializer action_serializer_class = { 'create': BonusCategorySerializer, 'update': BonusCategorySerializer, 'partial_update': BonusCategorySerializer, 'list': BonusCategoryListSerializer, 'retrieve': BonusCategoryListSerializer, } action_permission_classes = { 'create': [IsAdminUser], 'update': [IsAdminUser], 'partial_update': [IsAdminUser], 'destroy': [IsAdminUser], 'list': [IsAdminUser], } class BonusEmployeeViewSet(BaseViewSetMixin, ModelViewSet): queryset = EmployeeBonus.objects.all() serializer_class = BonusEmployeeBonusSerializer action_serializer_class = { 'create': BonusEmployeeBonusSerializer, 'update': BonusEmployeeBonusSerializer, 'partial_update': BonusEmployeeBonusSerializer, 'list': EmployeeBonusListSerializer, 'retrieve': EmployeeBonusListSerializer, } action_permission_classes = { 'create': [IsAdminUser], 'update': [IsAdminUser], 'partial_update': [IsAdminUser], 'destroy': [IsAdminUser], 'list': [IsAdminUser], }