chore: init monorepo snapshot

This commit is contained in:
liaibo
2025-11-23 10:55:04 +08:00
commit c70ff52869
941 changed files with 246586 additions and 0 deletions
@@ -0,0 +1,43 @@
from __future__ import annotations
from typing import Any, Dict, Optional
from app.schemas.tasks import TaskStatusResponse
from app.services.supabase_rest import supabase_rest
class SupabaseTaskTracker:
"""利用 Supabase background_tasks 表追踪进度。"""
def create_task(self, *, user_id: str, document_id: str, task_type: str = "ocr") -> TaskStatusResponse:
payload = {
"user_id": user_id,
"document_id": document_id,
"task_type": task_type,
"status": "pending",
"progress": 0,
}
record = supabase_rest.insert("background_tasks", payload)
return self._to_response(record)
def get_task(self, *, task_id: str, user_id: str) -> Optional[TaskStatusResponse]:
record = supabase_rest.select_one("background_tasks", {"id": task_id, "user_id": user_id})
if not record:
return None
return self._to_response(record)
def update_task(self, *, task_id: str, **kwargs: Any) -> None:
supabase_rest.update("background_tasks", {"id": task_id}, kwargs)
def _to_response(self, record: Optional[Dict[str, Any]]) -> TaskStatusResponse:
if not record:
raise ValueError("Task record missing")
return TaskStatusResponse(
task_id=str(record["id"]),
status=record.get("status", "pending"),
progress=record.get("progress", 0),
message=record.get("message"),
)
task_tracker = SupabaseTaskTracker()