workflow.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. from typing import Optional, List
  2. from pydantic import BaseModel, ConfigDict
  3. from pydantic.alias_generators import to_camel
  4. class WorkflowNodeCreate(BaseModel):
  5. model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel)
  6. node_name: str
  7. node_order: int
  8. approver_id: Optional[int] = None
  9. approver_name: Optional[str] = None
  10. class WorkflowNodeUpdate(BaseModel):
  11. model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel)
  12. node_name: Optional[str] = None
  13. node_order: Optional[int] = None
  14. approver_id: Optional[int] = None
  15. class WorkflowNodeOut(BaseModel):
  16. model_config = ConfigDict(from_attributes=True, populate_by_name=True, alias_generator=to_camel)
  17. id: int
  18. node_name: str
  19. node_order: int
  20. approver_id: Optional[int] = None
  21. approver_name: Optional[str] = None
  22. class WorkflowDefCreate(BaseModel):
  23. model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel)
  24. biz_type: str
  25. wf_name: str
  26. status: int = 1
  27. nodes: Optional[List[WorkflowNodeCreate]] = None
  28. class WorkflowDefUpdate(BaseModel):
  29. model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel)
  30. biz_type: Optional[str] = None
  31. wf_name: Optional[str] = None
  32. status: Optional[int] = None
  33. nodes: Optional[List[WorkflowNodeCreate]] = None
  34. class WorkflowDefOut(BaseModel):
  35. model_config = ConfigDict(from_attributes=True, populate_by_name=True, alias_generator=to_camel)
  36. id: int
  37. biz_type: str
  38. wf_name: str
  39. status: int
  40. nodes: List[WorkflowNodeOut] = []