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