40 lines
1,015 B
Python
40 lines
1,015 B
Python
|
|
from datetime import datetime, timezone
|
||
|
|
|
||
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||
|
|
|
||
|
|
from ..models import Job
|
||
|
|
|
||
|
|
|
||
|
|
async def mark_processing(db: AsyncSession, job: Job) -> None:
|
||
|
|
job.status = "processing"
|
||
|
|
job.started_at = datetime.now(timezone.utc)
|
||
|
|
job.error_message = None
|
||
|
|
await db.commit()
|
||
|
|
|
||
|
|
|
||
|
|
async def save_llm_results(
|
||
|
|
db: AsyncSession,
|
||
|
|
job: Job,
|
||
|
|
generated_text: str,
|
||
|
|
translated_text: str,
|
||
|
|
input_summary: str,
|
||
|
|
) -> None:
|
||
|
|
job.generated_text = generated_text
|
||
|
|
job.translated_text = translated_text
|
||
|
|
job.input_summary = input_summary
|
||
|
|
await db.commit()
|
||
|
|
|
||
|
|
|
||
|
|
async def mark_succeeded(db: AsyncSession, job: Job, audio_url: str) -> None:
|
||
|
|
job.status = "succeeded"
|
||
|
|
job.audio_url = audio_url
|
||
|
|
job.completed_at = datetime.now(timezone.utc)
|
||
|
|
await db.commit()
|
||
|
|
|
||
|
|
|
||
|
|
async def mark_failed(db: AsyncSession, job: Job, error: str) -> None:
|
||
|
|
job.status = "failed"
|
||
|
|
job.error_message = error
|
||
|
|
job.completed_at = datetime.now(timezone.utc)
|
||
|
|
await db.commit()
|