57 lines
1.7 KiB
Python
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
|