from pydantic import BaseModel from typing import Optional, List from datetime import datetime class CheckpointCreate(BaseModel): """观测点创建""" point_id: str section_id: str name: str burial_date: Optional[datetime] = None objstate: Optional[str] = None monitoring_type: Optional[str] = None period_number: Optional[int] = None first_time: Optional[datetime] = None manufacturer: Optional[str] = None point_code: Optional[str] = None class CheckpointResponse(BaseModel): """观测点响应""" id: int point_id: Optional[str] = None section_id: str name: str burial_date: Optional[datetime] = None objstate: Optional[str] = None monitoring_type: Optional[str] = None period_number: Optional[int] = None first_time: Optional[datetime] = None manufacturer: Optional[str] = None point_code: Optional[str] = None class CheckpointWithSection(BaseModel): """观测点响应(包含断面信息)""" id: int point_id: Optional[str] = None section_id: str name: str burial_date: Optional[datetime] = None objstate: Optional[str] = None monitoring_type: Optional[str] = None period_number: Optional[int] = None first_time: Optional[datetime] = None manufacturer: Optional[str] = None point_code: Optional[str] = None # 断面信息 section_mileage: Optional[str] = None rock_mass_classification: Optional[str] = None class CheckpointBatchImport(BaseModel): """观测点批量导入""" account_id: int data: List[CheckpointCreate] class CheckpointQuery(BaseModel): """观测点查询参数""" account_id: int department_id: Optional[str] = None section_id: Optional[str] = None point_id: Optional[str] = None name: Optional[str] = None page: int = 1 page_size: int = 20