""" Django signals for automatic AI analysis of comments. Triggers background analysis when new comments are created. """ import logging from django.db.models.signals import post_save from django.dispatch import receiver from apps.social.models import SocialComment from apps.social.tasks.ai import analyze_comment_task logger = logging.getLogger(__name__) @receiver(post_save, sender=SocialComment) def analyze_comment_on_creation(sender, instance, created, **kwargs): """ Automatically trigger AI analysis when a new comment is created. This signal fires immediately after a SocialComment is saved to the database. It checks if it's a new comment (created=True) and triggers background analysis via Celery. Args: sender: The model class that sent the signal instance: The actual comment instance that was saved created: Boolean - True if this is a new record, False if it's an update **kwargs: Additional keyword arguments """ if created: logger.info(f"New comment created (ID: {instance.id}), triggering AI analysis...") # Trigger background analysis task try: analyze_comment_task.delay(instance.id) logger.info(f"AI analysis task queued for comment {instance.id}") except Exception as e: logger.error(f"Failed to queue AI analysis for comment {instance.id}: {e}") # Don't raise exception to avoid preventing comment from being saved