from rest_framework import serializers from rest_framework.response import Response from rest_framework.views import APIView from apps.customer.models import Customer as CustomerModel from rest_framework import status from apps.customer.selectors import customer_summery from utils.tools import inline_serializer class CustomerSummary(APIView): class OutputSerializer(serializers.Serializer): customer_notes = inline_serializer(many=True, fields={ 'id': serializers.IntegerField(required=True), 'created_at': serializers.DateTimeField(required=True), 'desc': serializers.CharField(required=True) }) customer_leads = inline_serializer(many=True, fields={ 'id': serializers.IntegerField(required=True), 'title': serializers.CharField(required=True), 'created_at': serializers.DateTimeField(required=True), }) def get(self, request, customer_id): summery = customer_summery(request=request, customer_id=customer_id) output = self.OutputSerializer(summery) return Response(data=output.data, status=status.HTTP_200_OK)