31 lines
787 B
Python
31 lines
787 B
Python
"""图片与任务的 schema。"""
|
|
from pydantic import BaseModel, ConfigDict, Field, field_validator
|
|
|
|
from app.models.job import JobStatus
|
|
|
|
|
|
class ImageOut(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
id: str
|
|
object_key: str
|
|
mime: str
|
|
size_bytes: int
|
|
|
|
|
|
class JobOut(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
id: str
|
|
status: JobStatus
|
|
image_id: str | None
|
|
# 一张图可能拆成多条笔记。任务未完成时库里是 NULL,对前端统一成空数组
|
|
result_question_ids: list[str] = Field(default_factory=list)
|
|
engine_used: str | None
|
|
error_message: str | None
|
|
|
|
@field_validator("result_question_ids", mode="before")
|
|
@classmethod
|
|
def _none_to_empty(cls, v):
|
|
return v or []
|