jm_job_info.py 3.7 KB

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