from pydantic import BaseModel, Field class CaseSqlPreviewCase(BaseModel): """病例 SQL 预览病例:展示导入文件中识别到的病例摘要。""" id: int title: str case_type: str difficulty: str class CaseSqlImportPreviewResponse(BaseModel): """病例 SQL 预检响应:只展示解析结果,不写入数据库。""" file_name: str encoding: str | None = None tables: dict[str, int] = Field(default_factory=dict) can_import: bool = False warnings: list[str] = Field(default_factory=list) errors: list[str] = Field(default_factory=list) preview_cases: list[CaseSqlPreviewCase] = Field(default_factory=list) class CaseSqlImportApplyResponse(BaseModel): """病例 SQL 导入响应:展示实际写库结果。""" imported: bool file_name: str encoding: str inserted_or_updated_cases: int imported_traditional_cases: int imported_teaching_cases: int imported_scoring_rules: int generated_exam_items: int warnings: list[str] = Field(default_factory=list)