from typing import List, Optional from pydantic import BaseModel, ConfigDict, Field class ProductionTaskSetItemBody(BaseModel): model_config = ConfigDict(populate_by_name=True) task_name: str = Field(..., alias="taskName") route_id: Optional[str] = Field(None, alias="routeId") description: Optional[str] = None remark: Optional[str] = None class ProductionTaskSetCreateBody(BaseModel): model_config = ConfigDict(populate_by_name=True) set_name: str = Field(..., alias="setName") status: Optional[str] = "1" remark: Optional[str] = None items: List[ProductionTaskSetItemBody] = [] class ProductionTaskSetUpdateBody(BaseModel): model_config = ConfigDict(populate_by_name=True) set_name: Optional[str] = Field(None, alias="setName") status: Optional[str] = None remark: Optional[str] = None items: Optional[List[ProductionTaskSetItemBody]] = None class ProductionTaskSetFromWorkOrderBody(BaseModel): model_config = ConfigDict(populate_by_name=True) work_order_id: str = Field(..., alias="workOrderId") set_name: str = Field(..., alias="setName") remark: Optional[str] = None items: Optional[List[ProductionTaskSetItemBody]] = None class ProductionTasksFromSetBody(BaseModel): model_config = ConfigDict(populate_by_name=True) work_order_id: str = Field(..., alias="workOrderId") set_id: str = Field(..., alias="setId") items: Optional[List[ProductionTaskSetItemBody]] = None