people-reading/backend/app/schemas/report.py
2026-05-11 23:26:11 +08:00

40 lines
866 B
Python

from datetime import datetime
from typing import Literal
from pydantic import BaseModel, ConfigDict, Field
class ReportCreate(BaseModel):
image_id: str
hand_side: Literal["left", "right", "unknown"] = "unknown"
class ReportSummary(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: str
status: str
hand_side: str
created_at: datetime
overall_summary: str | None = None
class ReportDetail(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: str
status: str
hand_side: str
error_message: str | None = None
report_data: dict | None = None
created_at: datetime
updated_at: datetime
class ReportDimension(BaseModel):
name: str
observations: list[str] = Field(default_factory=list)
interpretation: str
confidence: float = Field(ge=0, le=1)
advice: str