language-learning-app/api/app/services/job_repo.py

39 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()