"""Operações em artigos da revisão."""

from reviews.models import Article


def delete_articles_by_source(review, source_id: int) -> int:
    """Remove todos os artigos importados de uma base nesta revisão."""
    linked_ids = set(review.sources.values_list("id", flat=True))
    if source_id not in linked_ids:
        return 0
    articles = Article.objects.filter(review_id=review.id, source_id=source_id).all()
    count = len(articles)
    for article in articles:
        article.delete()
    return count
