初始化
This commit is contained in:
5
app/schemas/__init__.py
Normal file
5
app/schemas/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from .work_area import WorkAreaCreate, WorkAreaResponse, WorkAreaBatchImport
|
||||
from .section_data import SectionDataCreate, SectionDataResponse, SectionDataBatchImport
|
||||
from .checkpoint import CheckpointCreate, CheckpointResponse, CheckpointBatchImport, CheckpointWithSection
|
||||
from .measurement_data import MeasurementDataCreate, MeasurementDataResponse, MeasurementDataBatchImport, MeasurementDataWithDetail
|
||||
from .common import PageParams, PageResponse, BatchImportResponse
|
||||
62
app/schemas/checkpoint.py
Normal file
62
app/schemas/checkpoint.py
Normal file
@@ -0,0 +1,62 @@
|
||||
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
|
||||
25
app/schemas/common.py
Normal file
25
app/schemas/common.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional, List, Any, Generic, TypeVar
|
||||
|
||||
T = TypeVar('T')
|
||||
|
||||
class PageParams(BaseModel):
|
||||
"""分页参数"""
|
||||
page: int = 1
|
||||
page_size: int = 20
|
||||
|
||||
class PageResponse(BaseModel, Generic[T]):
|
||||
"""分页响应"""
|
||||
total: int
|
||||
page: int
|
||||
page_size: int
|
||||
items: List[T]
|
||||
|
||||
class BatchImportResponse(BaseModel):
|
||||
"""批量导入响应"""
|
||||
success: bool
|
||||
total: int
|
||||
inserted: int
|
||||
skipped: int
|
||||
skipped_ids: List[str] = []
|
||||
message: str
|
||||
61
app/schemas/measurement_data.py
Normal file
61
app/schemas/measurement_data.py
Normal file
@@ -0,0 +1,61 @@
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional, List
|
||||
from datetime import datetime
|
||||
|
||||
class MeasurementDataCreate(BaseModel):
|
||||
"""量测数据创建"""
|
||||
point_id: str
|
||||
monitoring_time: Optional[datetime] = None
|
||||
upload_time: Optional[datetime] = None
|
||||
monitoring_value: Optional[str] = None
|
||||
deformation_value: Optional[str] = None
|
||||
time_interval: Optional[str] = None
|
||||
cumulative_deformation: Optional[str] = None
|
||||
deformation_rate: Optional[str] = None
|
||||
distance_working_face: Optional[str] = None
|
||||
|
||||
class MeasurementDataResponse(BaseModel):
|
||||
"""量测数据响应"""
|
||||
id: int
|
||||
point_id: Optional[str] = None
|
||||
monitoring_time: Optional[datetime] = None
|
||||
upload_time: Optional[datetime] = None
|
||||
monitoring_value: Optional[str] = None
|
||||
deformation_value: Optional[str] = None
|
||||
time_interval: Optional[str] = None
|
||||
cumulative_deformation: Optional[str] = None
|
||||
deformation_rate: Optional[str] = None
|
||||
distance_working_face: Optional[str] = None
|
||||
|
||||
class MeasurementDataWithDetail(BaseModel):
|
||||
"""量测数据响应(包含断面和观测点信息)"""
|
||||
id: int
|
||||
point_id: Optional[str] = None
|
||||
monitoring_time: Optional[datetime] = None
|
||||
upload_time: Optional[datetime] = None
|
||||
monitoring_value: Optional[str] = None
|
||||
deformation_value: Optional[str] = None
|
||||
time_interval: Optional[str] = None
|
||||
cumulative_deformation: Optional[str] = None
|
||||
deformation_rate: Optional[str] = None
|
||||
distance_working_face: Optional[str] = None
|
||||
# 观测点信息
|
||||
point_name: Optional[str] = None
|
||||
# 断面信息
|
||||
section_mileage: Optional[str] = None
|
||||
rock_mass_classification: Optional[str] = None
|
||||
|
||||
class MeasurementDataBatchImport(BaseModel):
|
||||
"""量测数据批量导入"""
|
||||
account_id: int
|
||||
data: List[MeasurementDataCreate]
|
||||
|
||||
class MeasurementDataQuery(BaseModel):
|
||||
"""量测数据查询参数"""
|
||||
account_id: int
|
||||
department_id: Optional[str] = None
|
||||
point_id: Optional[str] = None
|
||||
monitoring_time_start: Optional[datetime] = None
|
||||
monitoring_time_end: Optional[datetime] = None
|
||||
page: int = 1
|
||||
page_size: int = 20
|
||||
49
app/schemas/section_data.py
Normal file
49
app/schemas/section_data.py
Normal file
@@ -0,0 +1,49 @@
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional, List
|
||||
from decimal import Decimal
|
||||
|
||||
class SectionDataCreate(BaseModel):
|
||||
"""断面数据创建"""
|
||||
section_id: str
|
||||
department_id: Optional[str] = None
|
||||
project: Optional[str] = None
|
||||
mileage: str
|
||||
name: Optional[str] = None
|
||||
number: Optional[str] = None
|
||||
status: Optional[str] = None
|
||||
excavation_method: Optional[str] = None
|
||||
rock_mass_classification: Optional[str] = None
|
||||
width: Optional[str] = None
|
||||
U0: Optional[Decimal] = None
|
||||
remarks: Optional[str] = None
|
||||
|
||||
class SectionDataResponse(BaseModel):
|
||||
"""断面数据响应"""
|
||||
id: int
|
||||
section_id: str
|
||||
department_id: Optional[str] = None
|
||||
project: Optional[str] = None
|
||||
mileage: str
|
||||
name: Optional[str] = None
|
||||
number: Optional[str] = None
|
||||
status: Optional[str] = None
|
||||
excavation_method: Optional[str] = None
|
||||
rock_mass_classification: Optional[str] = None
|
||||
width: Optional[str] = None
|
||||
U0: Optional[Decimal] = None
|
||||
remarks: Optional[str] = None
|
||||
|
||||
class SectionDataBatchImport(BaseModel):
|
||||
"""断面数据批量导入"""
|
||||
account_id: int
|
||||
data: List[SectionDataCreate]
|
||||
|
||||
class SectionDataQuery(BaseModel):
|
||||
"""断面数据查询参数"""
|
||||
account_id: int
|
||||
department_id: Optional[str] = None
|
||||
section_id: Optional[str] = None
|
||||
name: Optional[str] = None
|
||||
number: Optional[str] = None
|
||||
page: int = 1
|
||||
page_size: int = 20
|
||||
32
app/schemas/work_area.py
Normal file
32
app/schemas/work_area.py
Normal file
@@ -0,0 +1,32 @@
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional, List
|
||||
|
||||
class WorkAreaCreate(BaseModel):
|
||||
"""工区创建"""
|
||||
department_id: str
|
||||
parent_id: Optional[str] = None
|
||||
type: Optional[str] = None
|
||||
name: Optional[str] = None
|
||||
|
||||
class WorkAreaResponse(BaseModel):
|
||||
"""工区响应"""
|
||||
id: int
|
||||
department_id: Optional[str] = None
|
||||
parent_id: Optional[str] = None
|
||||
type: Optional[str] = None
|
||||
name: Optional[str] = None
|
||||
|
||||
class WorkAreaBatchImport(BaseModel):
|
||||
"""工区批量导入"""
|
||||
account_id: int
|
||||
data: List[WorkAreaCreate]
|
||||
|
||||
class WorkAreaQuery(BaseModel):
|
||||
"""工区查询参数"""
|
||||
account_id: int
|
||||
department_id: Optional[str] = None
|
||||
parent_id: Optional[str] = None
|
||||
type: Optional[str] = None
|
||||
name: Optional[str] = None
|
||||
page: int = 1
|
||||
page_size: int = 20
|
||||
Reference in New Issue
Block a user