from pydantic import BaseModel from typing import Any, Dict, List, Optional # 原始数据导入请求 class OriginalDataImportRequest(BaseModel): bfpcode: str mtime: str bffb: str bfpl: str bfpvalue: str times: str NYID: str sort: Optional[int] = None # 水准数据导入请求 class LevelDataImportRequest(BaseModel): linecode: str NYID: str benchmarkids: Optional[str] = None wsphigh: Optional[str] = None createDate: Optional[str] = None # 沉降数据导入请求 class SettlementDataImportRequest(BaseModel): point_id: str NYID: str CVALUE: str MAVALUE: str MTIME_W: str PRELOADH: str PSTATE: str createdate: str day: str day_jg: str REMARK: Optional[str] = None WORKINFO: Optional[str] = None useflag: Optional[str] = None mavalue_lj: Optional[str] = None mavalue_bc: Optional[str] = None sjName: Optional[str] = None workinfoname: Optional[str] = None isgzjdxz: Optional[str] = None upd_remark: Optional[str] = None # 观测点数据导入请求 class CheckpointDataImportRequest(BaseModel): point_id: str aname: str section_id: str burial_date: Optional[str] = None # 断面数据导入请求 class SectionDataImportRequest(BaseModel): section_id: str mileage: str work_site: str status: str number: str basic_types: Optional[str] = None height: Optional[str] = None transition_paragraph: Optional[str] = None # 批量导入请求 class BatchSectionDataImportRequest(BaseModel): data: List[SectionDataImportRequest] class BatchCheckpointDataImportRequest(BaseModel): data: List[CheckpointDataImportRequest] class BatchSettlementDataImportRequest(BaseModel): data: List[SettlementDataImportRequest] class BatchLevelDataImportRequest(BaseModel): data: List[LevelDataImportRequest] class BatchOriginalDataImportRequest(BaseModel): data: List[OriginalDataImportRequest] # 响应模型 class DataImportResponse(BaseModel): success: bool message: str total_count: int success_count: int failed_count: int failed_items: List[Dict[str, Any]] = [] # 兼容旧接口的模型 class ComprehensiveDataImportRequest(BaseModel): data: Dict[str, Any] class ComprehensiveDataImportResponse(BaseModel): success: bool message: str