from __future__ import annotations

import logging

from celery import shared_task

logger = logging.getLogger(__name__)


@shared_task
def weekly_analytics_rollup() -> int:
    from apps.repository.analytics.services import compute_weekly_rollup

    return compute_weekly_rollup()


@shared_task
def embed_document_chunks_async(document_id: int) -> int:
    from apps.repository.analytics.ai_insights import embed_document_chunks

    return embed_document_chunks(document_id)


@shared_task
def summarise_document_async(document_id: int) -> bool:
    from apps.repository.analytics.ai_insights import summarise_document

    return bool(summarise_document(document_id))


@shared_task
def classify_document_async(document_id: int) -> bool:
    from apps.repository.analytics.ai_insights import classify_document

    return bool(classify_document(document_id))


@shared_task
def extract_metadata_async(document_id: int) -> bool:
    from apps.repository.analytics.ai_insights import extract_metadata

    return bool(extract_metadata(document_id))


@shared_task
def refresh_research_trends(period_days: int = 180) -> int:
    from apps.repository.analytics.ai_insights import analyse_research_trends

    return len(analyse_research_trends(period_days=period_days))


@shared_task
def mel_indicator_daily_push() -> int:
    from apps.repository.integration.mel_feed import push_daily_indicators

    return push_daily_indicators()
