from pydantic import BaseModel, field_validator class KnowledgeBaseItem(BaseModel): id: str name: str parent_table: str = "" child_table: str = "" document_count: int status: str created_at: str created_by: str metadata_schema: list[dict] = [] @field_validator("parent_table", "child_table", mode="before") @classmethod def none_to_empty(cls, v: str | None) -> str: return v if v is not None else "" class KnowledgeBaseListResponse(BaseModel): total: int page: int page_size: int items: list[KnowledgeBaseItem] class KnowledgeBaseDetailResponse(BaseModel): id: str name: str description: str = "" parent_table: str = "" child_table: str = "" document_count: int status: str created_at: str updated_at: str = "" created_by: str metadata_schema: list[dict] = [] @field_validator("parent_table", "child_table", mode="before") @classmethod def none_to_empty(cls, v: str | None) -> str: return v if v is not None else "" class ImportTaskResponse(BaseModel): task_id: str status: str class KbImportResponse(BaseModel): kb_id: str kb_name: str document_count: int metadata_schema: list[dict] = [] parent_table: str = "" child_table: str = "" @field_validator("parent_table", "child_table", mode="before") @classmethod def none_to_empty(cls, v: str | None) -> str: return v if v is not None else ""