from typing import Optional, List from pydantic import BaseModel, ConfigDict from pydantic.alias_generators import to_camel class WorkflowNodeCreate(BaseModel): model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel) node_name: str node_order: int approver_id: Optional[int] = None approver_name: Optional[str] = None class WorkflowNodeUpdate(BaseModel): model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel) node_name: Optional[str] = None node_order: Optional[int] = None approver_id: Optional[int] = None class WorkflowNodeOut(BaseModel): model_config = ConfigDict(from_attributes=True, populate_by_name=True, alias_generator=to_camel) id: int node_name: str node_order: int approver_id: Optional[int] = None approver_name: Optional[str] = None class WorkflowDefCreate(BaseModel): model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel) biz_type: str wf_name: str status: int = 1 nodes: Optional[List[WorkflowNodeCreate]] = None class WorkflowDefUpdate(BaseModel): model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel) biz_type: Optional[str] = None wf_name: Optional[str] = None status: Optional[int] = None nodes: Optional[List[WorkflowNodeCreate]] = None class WorkflowDefOut(BaseModel): model_config = ConfigDict(from_attributes=True, populate_by_name=True, alias_generator=to_camel) id: int biz_type: str wf_name: str status: int nodes: List[WorkflowNodeOut] = []