33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
"""
|
|
Исправленная версия для проверки Audio без AiConclusion
|
|
"""
|
|
from sqlalchemy import exists
|
|
|
|
|
|
def get_audio_without_conclusion(db, limit=100):
|
|
"""
|
|
Находит все Audio, у которых нет AiConclusion
|
|
|
|
Использует подзапрос через exists, так как AiConclusion - это relationship
|
|
"""
|
|
# Импортируем модели
|
|
from apiApp.database.Audio import Audio
|
|
from apiApp.database.AiConclusion import AiConclusion
|
|
|
|
# Создаём подзапрос для проверки наличия AiConclusion
|
|
subquery = db.query(AiConclusion.audio_id).filter(
|
|
AiConclusion.audio_id == Audio.id
|
|
)
|
|
|
|
# Находим Audio без AiConclusion
|
|
pending_audio = db.query(Audio).filter(
|
|
~exists().where(subquery.exists())
|
|
).order_by(Audio.index_date.asc()).limit(limit).all()
|
|
|
|
# Считаем total
|
|
total_pending = db.query(Audio).filter(
|
|
~exists().where(subquery.exists())
|
|
).count()
|
|
|
|
return pending_audio, total_pending
|