
from extractly.models import AdsManual
from django.db.models import Q

def _pending_qs():
    empty_images = (
        Q(images__isnull=True) |
        Q(images__exact='') |
        Q(images__exact=[]) |
        Q(images__exact={})
    )
    return (
        AdsManual.objects
        .filter(isSendToMainServer=False)
        # WYŚLIJ gdy ma zdjęcie LUB oznaczone jako processed_without_image
        .filter( Q(~empty_images) | Q(processed_without_image=True) )
        .order_by("id")
    )



def _take_batch(limit: int):
    # bierzemy najstarsze niewysłane rekordy
    return list(_pending_qs()[: int(limit)])


def _count_pending() -> int:
    try:
        return _pending_qs().count()
    except Exception:
        return 0

