You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.1 KiB
32 lines
1.1 KiB
""" |
|
Исправленная версия для проверки 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
|
|
|