Сервис для хранения файлов аудио, индексации файлов, записи и выдачи результатов распознавания
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

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