"""图片与任务的 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 []