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.
56 lines
1.7 KiB
56 lines
1.7 KiB
from sqlalchemy.orm import Session |
|
from typing import List, Optional |
|
import os |
|
from apiApp.database import Audio |
|
from apiApp.schemas import AudioCreate |
|
from apiApp.config import UPLOAD_FOLDER |
|
import datetime |
|
import uuid |
|
|
|
|
|
|
|
class AiConclusionCRUD: |
|
|
|
@staticmethod |
|
def get_by_audio_id(db: Session, audio_id: uuid.UUID): |
|
"""Получить заключение по audio_id""" |
|
from apiApp.database import AiConclusion |
|
return db.query(AiConclusion).filter(AiConclusion.audio_id == audio_id).first() |
|
|
|
@staticmethod |
|
def create(db: Session, audio_id: uuid.UUID, conclusion: dict = None): |
|
"""Создать новое заключение""" |
|
from apiApp.database import AiConclusion |
|
|
|
db_conclusion = AiConclusion( |
|
audio_id=audio_id, |
|
conclusion=conclusion or { |
|
"transcription": [], |
|
"ai_transcription": [], |
|
"conclusion": {} |
|
}, |
|
index_date=datetime.datetime.utcnow() |
|
) |
|
db.add(db_conclusion) |
|
db.commit() |
|
db.refresh(db_conclusion) |
|
return db_conclusion |
|
|
|
@staticmethod |
|
def update(db: Session, conclusion_id: uuid.UUID, conclusion_data: dict, end_date: bool = False): |
|
"""Обновить заключение""" |
|
from apiApp.database import AiConclusion |
|
|
|
db_conclusion = db.query(AiConclusion).filter(AiConclusion.id == conclusion_id).first() |
|
if not db_conclusion: |
|
return None |
|
|
|
if conclusion_data: |
|
db_conclusion.conclusion = conclusion_data |
|
|
|
if end_date: |
|
db_conclusion.end_date = datetime.datetime.utcnow() |
|
|
|
db.commit() |
|
db.refresh(db_conclusion) |
|
return db_conclusion
|
|
|