from django.db import transaction

from api.models.data.payroll import Payroll
from api.serializers.data.payroll import PayrollSerializer
from api.views.data.base import DataRootViewSet


class PayrollViewSet(DataRootViewSet):
    permission_module = 'payroll'
    serializer_class = PayrollSerializer
    search_fields = ["employee__full_name", "employee__email", "employee__phone", "notes"]
    queryset = Payroll.objects.all().order_by("-id")

    @transaction.atomic
    def perform_create(self, serializer):
        employee = serializer.validated_data.get('employee')
        serializer.save()

    @transaction.atomic
    def perform_update(self, serializer):
        serializer.save()

    @transaction.atomic
    def perform_destroy(self, instance):
        instance.delete()
