Files
FileAudioAPI/apiApp/services/ai_conclusion_service.py
T

57 lines
1.7 KiB
Python

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