| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- """工艺路线管理 Pydantic Schemas"""
- from pydantic import BaseModel, ConfigDict, Field
- from typing import Optional, List
- # Route main table
- class ProcessRouteCreateBody(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- route_code: str = Field(..., alias="routeCode")
- route_name: str = Field(..., alias="routeName")
- product_type_id: Optional[str] = Field(None, alias="productTypeId")
- version: Optional[str] = Field(None, alias="version")
- remark: Optional[str] = None
- class ProcessRouteUpdateBody(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- route_code: Optional[str] = Field(None, alias="routeCode")
- route_name: Optional[str] = Field(None, alias="routeName")
- product_type_id: Optional[str] = Field(None, alias="productTypeId")
- version: Optional[str] = Field(None, alias="version")
- remark: Optional[str] = None
- equipment_ids: Optional[List[str]] = Field(None, alias="equipmentIds")
- class SetCurrentBody(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- route_id: str = Field(..., alias="routeId")
- # Step operations
- class StepAddBody(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- route_id: str = Field(..., alias="routeId")
- process_id: str = Field(..., alias="processId")
- step_order: Optional[int] = Field(None, alias="stepOrder")
- class StepCopyBody(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- step_id: str = Field(..., alias="stepId")
- class StepUpdateBody(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- step_id: str = Field(..., alias="stepId")
- process_code: Optional[str] = Field(None, alias="processCode")
- category_id: Optional[str] = Field(None, alias="categoryId")
- process_name: Optional[str] = Field(None, alias="processName")
- description: Optional[str] = None
- equipment_ids: Optional[List[str]] = Field(None, alias="equipmentIds")
- estimated_duration: Optional[str] = Field(None, alias="estimatedDuration")
- sop_ids: Optional[str] = Field(None, alias="sopIds")
- sop_content: Optional[str] = Field(None, alias="sopContent")
- class StepReorderBody(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- route_id: str = Field(..., alias="routeId")
- step_ids: List[str] = Field(..., alias="stepIds")
- # Step sub-table items
- class StepReagentItem(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- reagent_code: Optional[str] = Field(None, alias="reagentCode")
- reagent_name: Optional[str] = Field(None, alias="reagentName")
- spec: Optional[str] = None
- standard_usage: Optional[str] = Field(None, alias="standardUsage")
- unit: Optional[str] = None
- is_key_material: Optional[str] = Field("0", alias="isKeyMaterial")
- order_num: Optional[int] = Field(0, alias="orderNum")
- remark: Optional[str] = None
- class StepConsumableItem(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- consumable_code: Optional[str] = Field(None, alias="consumableCode")
- consumable_name: Optional[str] = Field(None, alias="consumableName")
- spec_model: Optional[str] = Field(None, alias="specModel")
- standard_usage: Optional[str] = Field(None, alias="standardUsage")
- unit: Optional[str] = None
- is_required: Optional[str] = Field("1", alias="isRequired")
- order_num: Optional[int] = Field(0, alias="orderNum")
- remark: Optional[str] = None
- class StepOutputItem(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- output_type_id: Optional[str] = Field(None, alias="outputTypeId")
- output_name: Optional[str] = Field(None, alias="outputName")
- output_barcode: Optional[str] = Field(None, alias="outputBarcode")
- order_num: Optional[int] = Field(0, alias="orderNum")
- remark: Optional[str] = None
- class StepDataCollectionItem(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- collection_name: Optional[str] = Field(None, alias="collectionName")
- unit: Optional[str] = None
- order_num: Optional[int] = Field(0, alias="orderNum")
- remark: Optional[str] = None
- # Sub-table update bodies (step_id + items[])
- class StepReagentUpdateBody(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- step_id: str = Field(..., alias="stepId")
- items: List[StepReagentItem] = Field(...)
- class StepConsumableUpdateBody(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- step_id: str = Field(..., alias="stepId")
- items: List[StepConsumableItem] = Field(...)
- class StepOutputUpdateBody(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- step_id: str = Field(..., alias="stepId")
- items: List[StepOutputItem] = Field(...)
- class StepDataCollectionUpdateBody(BaseModel):
- model_config = ConfigDict(populate_by_name=True)
- step_id: str = Field(..., alias="stepId")
- items: List[StepDataCollectionItem] = Field(...)
|