from rest_framework.views import APIView from apps.customer.models import ShiveAshenaei as ShiveAshenaeiModel from apps.workspace.models import City as CityModel from rest_framework import serializers from utils.tools import inline_serializer from rest_framework import status from apps.customer.selectors import customer_form_item from rest_framework.response import Response from rest_framework.permissions import IsAuthenticated from utils import custom_permissions class CustomerFormItemApi(APIView): permission_classes = (IsAuthenticated, custom_permissions.WorkspaceOperatorPermission) class OutputSerializer(serializers.Serializer): shive_ashenaei = inline_serializer(many=True, fields={ 'id': serializers.IntegerField(), 'name': serializers.CharField() }) shahr = inline_serializer(many=True, fields={ 'id': serializers.IntegerField(), 'name': serializers.CharField(), 'ostan': inline_serializer(fields={'id': serializers.IntegerField(), }), 'is_ostan': serializers.BooleanField(), }) responsible_groups = inline_serializer(many=True, fields={ 'id': serializers.IntegerField(), 'name': serializers.CharField() }) def get(self, request): fields_value = customer_form_item(request) serializer = self.OutputSerializer(fields_value) return Response(data=serializer.data, status=status.HTTP_200_OK)