finyx_data_ai/app/schemas/parse_sql_result.py
2026-01-11 07:48:19 +08:00

50 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
SQL 结果解析模块的数据模型
"""
from typing import Optional, List
from pydantic import BaseModel, Field
# ==================== 请求模型 ====================
class ParseSQLResultRequest(BaseModel):
"""SQL 结果解析请求"""
file_path: str = Field(..., description="文件路径")
file_type: Optional[str] = Field(None, description="文件类型excel/csv")
project_id: str = Field(..., description="项目ID")
# ==================== 响应模型 ====================
class FieldInfo(BaseModel):
"""字段信息"""
raw_name: str = Field(..., description="字段名(英文/原始名称)")
display_name: Optional[str] = Field(None, description="字段显示名称(中文)")
type: str = Field(..., description="字段类型")
comment: Optional[str] = Field(None, description="字段注释")
class TableInfo(BaseModel):
"""表信息"""
raw_name: str = Field(..., description="表名(英文/原始名称)")
display_name: Optional[str] = Field(None, description="表显示名称(中文)")
description: Optional[str] = Field(None, description="表描述")
fields: List[FieldInfo] = Field(..., description="字段列表")
field_count: int = Field(..., ge=0, description="字段数量")
class FileInfo(BaseModel):
"""文件信息"""
file_name: str = Field(..., description="文件名")
file_size: int = Field(..., ge=0, description="文件大小(字节)")
file_type: str = Field(..., description="文件类型")
class ParseSQLResultResponse(BaseModel):
"""SQL 结果解析响应"""
tables: List[TableInfo] = Field(..., description="解析出的表列表")
total_tables: int = Field(..., ge=0, description="总表数")
total_fields: int = Field(..., ge=0, description="总字段数")
parse_time: float = Field(..., ge=0, description="解析耗时(秒)")
file_info: FileInfo = Field(..., description="文件信息")