"""Analytics listens to document lifecycle signals to trigger AI / rollups."""

from __future__ import annotations

from django.dispatch import receiver

from apps.repository.documents import signals as repo_signals


@receiver(repo_signals.document_published)
def _queue_ai_on_publish(sender, document, **kwargs):
    from apps.repository.analytics import tasks

    tasks.embed_document_chunks_async.delay(document.pk)
    if not (document.abstract or "").strip():
        tasks.summarise_document_async.delay(document.pk)
    tasks.classify_document_async.delay(document.pk)
    tasks.extract_metadata_async.delay(document.pk)


@receiver(repo_signals.version_added)
def _reembed_on_new_version(sender, document, version, **kwargs):
    from apps.repository.analytics import tasks

    tasks.embed_document_chunks_async.delay(document.pk)
