| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- from typing import List, Optional
- from pydantic import BaseModel, ConfigDict, field_validator
- from pydantic.alias_generators import to_camel
- def _coerce_optional_id(value):
- if value is None:
- return None
- return str(value).strip()
- class WorkflowNodeCreate(BaseModel):
- model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel)
- node_name: str
- node_order: int
- approver_id: Optional[str] = None
- approver_name: Optional[str] = None
- action_type: Optional[str] = "approve"
- @field_validator("approver_id", mode="before")
- @classmethod
- def validate_approver_id(cls, value):
- return _coerce_optional_id(value)
- class WorkflowNodeOut(BaseModel):
- model_config = ConfigDict(from_attributes=True, populate_by_name=True, alias_generator=to_camel)
- id: str
- node_name: str
- node_order: int
- approver_id: Optional[str] = None
- approver_name: Optional[str] = None
- action_type: Optional[str] = "approve"
- 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: str
- biz_type: str
- wf_name: str
- status: int
- create_by: Optional[str] = None
- nodes: List[WorkflowNodeOut] = []
|