from rest_framework import viewsets from .models import AdEvaluation from .serializers import AdEvaluationSerializer class AdEvaluationViewSet(viewsets.ModelViewSet): """ ViewSet for listing, viewing, and deleting Ad Evaluations. Supports filtering by crawl_task (UUID) and is_flagged (boolean). """ serializer_class = AdEvaluationSerializer def get_queryset(self): queryset = AdEvaluation.objects.all().select_related('ad', 'crawl_task').order_by('-evaluated_at') crawl_task_id = self.request.query_params.get('crawl_task') is_flagged = self.request.query_params.get('is_flagged') if crawl_task_id: queryset = queryset.filter(crawl_task_id=crawl_task_id) if is_flagged is not None: is_flagged_bool = is_flagged.lower() in ('true', '1', 't') queryset = queryset.filter(is_flagged=is_flagged_bool) return queryset