5c028d7952
包含 FastAPI 后端、React 前端、队列/OCR/标签/待办等完整功能。 Co-authored-by: Cursor <cursoragent@cursor.com>
80 lines
951 B
Python
80 lines
951 B
Python
"""分析任务队列的请求/响应模型。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
from datetime import datetime
|
|
|
|
from typing import Optional
|
|
|
|
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
|
|
|
|
|
|
class JobOut(BaseModel):
|
|
|
|
"""单条任务详情,含关联截图摘要。"""
|
|
|
|
|
|
|
|
id: int
|
|
|
|
screenshot_id: int
|
|
|
|
kind: str
|
|
|
|
status: str
|
|
|
|
retries: int
|
|
|
|
last_error: Optional[str] = None
|
|
|
|
created_at: datetime
|
|
|
|
started_at: Optional[datetime] = None
|
|
|
|
finished_at: Optional[datetime] = None
|
|
|
|
thumb_url: Optional[str] = None
|
|
|
|
path: Optional[str] = None
|
|
|
|
ai_title: Optional[str] = None
|
|
|
|
ai_status: Optional[str] = None
|
|
|
|
ocr_status: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
|
|
class JobListResp(BaseModel):
|
|
|
|
items: list[JobOut]
|
|
|
|
total: int
|
|
|
|
page: int
|
|
|
|
size: int
|
|
|
|
|
|
|
|
|
|
|
|
class JobRetryIn(BaseModel):
|
|
|
|
"""可选:仅重试指定 job id;不传则重试全部 failed。"""
|
|
|
|
|
|
|
|
job_ids: Optional[list[int]] = None
|
|
|
|
|