from pydantic import BaseModel, Field, ConfigDict from typing import Optional, List, Any from datetime import datetime class LevelDataBase(BaseModel): """水准数据基础模型""" linecode: Optional[str] = None benchmarkids: Optional[str] = None wsphigh: Optional[str] = None NYID: Optional[str] = None mtype: Optional[str] = None wspversion: Optional[str] = None barometric: Optional[str] = None equipbrand: Optional[str] = None instrumodel: Optional[str] = None serialnum: Optional[str] = None sjname: Optional[str] = None temperature: Optional[str] = None weather: Optional[str] = None class LevelDataResponse(LevelDataBase): """水准数据响应模型""" id: int createDate: Optional[datetime] = None model_config = ConfigDict( from_attributes=True ) class LevelDataRequest(BaseModel): """水准数据请求模型""" project_name: str = Field(..., description="标段名称") nyid_max: Optional[bool] = Field(False, description="是否只获取最新期数的水准数据") class LevelDataListResponse(BaseModel): """水准数据列表响应格式""" code: int = 0 message: str total: int data: List[LevelDataResponse] = [] class BatchDeleteByLinecodesRequest(BaseModel): """批量删除请求模型""" linecodes: List[str] = Field(..., description="水准线路编码列表") class BatchDeleteByLinecodesResponse(BaseModel): """批量删除响应模型""" code: int = 0 message: str success: bool backup_file: Optional[str] = None deleted_counts: Optional[dict] = None