from django.db.models import CharField
from django.db.models.functions import Cast
from rest_framework import viewsets, permissions
from rest_framework.response import Response
from dbsynce.serializer import FrequentaddressSerializer
from dbsynce.models import Frequentaddress

class FrequentaddressMVS(viewsets.ModelViewSet):
    queryset = Frequentaddress.objects.all()
    serializer_class = FrequentaddressSerializer
    permission_classes = [permissions.IsAuthenticated]

    def list(self, request, *args, **kwargs):
        client_id = self.request.query_params.get('client_id')
        queryset = Frequentaddress.objects.all()
        if client_id is not None:
            queryset = queryset.annotate(client_id_int=Cast('client_id', output_field=CharField())).filter(client_id_int=client_id)
        serializer = self.get_serializer(queryset, many=True)
        return Response(serializer.data)
    
    def delete(self, request, *args, **kwargs):
        client_id = self.request.query_params.get('client_id')
        queryset = Frequentaddress.objects.all()
        if not client_id:
            return Response({'error': 'client_id parameter is required'}, status=status.HTTP_400_BAD_REQUEST)
        
        queryset = queryset.annotate(client_id_int=Cast('client_id', output_field=CharField())).filter(client_id_int=client_id)
        queryset.delete()

        return Response({'message': f'Objects with client_id {client_id} were deleted'}, status=status.HTTP_204_NO_CONTENT)