jm_job_info.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. from typing import List, Optional
  2. from pydantic import BaseModel
  3. from app.schemas.jm_job_node import JmJobEdge, JmJobNode
  4. class JmJobInfoBase(BaseModel):
  5. # 任务名称
  6. name: str
  7. # 任务类型
  8. type: str
  9. # 任务分类
  10. tag: str
  11. # 周期类型(1:单次;2:循环)
  12. cron_type: int
  13. # 周期num
  14. cron_num: Optional[int]
  15. # 周期单位
  16. cron_unit: Optional[str]
  17. # 图形信息
  18. json_str : Optional[str]
  19. # 用户id
  20. user_id: str
  21. # 用户名称
  22. user_name: str
  23. # 项目id
  24. project_id: str
  25. class JmJobInfoCreate(JmJobInfoBase):
  26. nodes: List[JmJobNode]
  27. edges: Optional[List[JmJobEdge]] = None
  28. class Config:
  29. schema_extra = {
  30. "example": {
  31. "name": "example",
  32. "type": "单作业离线任务",
  33. "tag": "业务预测",
  34. "cron_type": "2",
  35. "cron_num": "1",
  36. "cron_unit": "时",
  37. "json_str": "\{图形信息\}",
  38. "user_id": "test",
  39. "user_name": "test",
  40. "project_id": "test",
  41. "nodes": [
  42. {
  43. "id": 1,
  44. "homework_id": 0,
  45. "homework_name": "开始",
  46. "start_point": 0,
  47. },
  48. {
  49. "id": 2,
  50. "homework_id": 1,
  51. "homework_name": "test",
  52. "start_point": 1,
  53. }
  54. ],
  55. "edges": [
  56. {
  57. "source": 1,
  58. "target": 2,
  59. }
  60. ],
  61. }
  62. }
  63. class JmJobInfoUpdate(JmJobInfoBase):
  64. id: int
  65. nodes: List[JmJobNode]
  66. edges: Optional[List[JmJobEdge]] = None
  67. class Config:
  68. schema_extra = {
  69. "example": {
  70. "id": 11,
  71. "name": "example",
  72. "type": "单作业离线任务",
  73. "tag": "业务预测",
  74. "cron_type": "2",
  75. "cron_num": "1",
  76. "cron_unit": "时",
  77. "json_str": "\{图形信息\}",
  78. "user_id": "test",
  79. "user_name": "test",
  80. "project_id": "test",
  81. "nodes": [
  82. {
  83. "id": 1,
  84. "homework_id": 0,
  85. "homework_name": "开始",
  86. "start_point": 0,
  87. },
  88. {
  89. "id": 2,
  90. "homework_id": 1,
  91. "homework_name": "test",
  92. "start_point": 1,
  93. }
  94. ],
  95. "edges": [
  96. {
  97. "source": 1,
  98. "target": 2,
  99. }
  100. ],
  101. }
  102. }
  103. class JmJobInfoStatusUpdate(BaseModel):
  104. id: int
  105. status: int
  106. class Config:
  107. schema_extra = {
  108. "example": {
  109. "id": 1,
  110. "status": 0,
  111. }
  112. }