jm_homework.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. from typing import List, Optional
  2. from pydantic import BaseModel
  3. from app.schemas.jm_homework_datasource_relation import JmHomeworkDatasourceRelationCreate
  4. class JmHomeworkBase(BaseModel):
  5. # 作业名称
  6. name: str
  7. # 作业类型
  8. type: str
  9. # 作业分类
  10. tag: str
  11. # 执行镜像
  12. image_url: str
  13. # DAG_ID
  14. dag_uuid: str
  15. # DAG文件地址
  16. dag_url: str
  17. # 脚本文件
  18. script_file: str
  19. # 执行命令
  20. execute_command: Optional[str]
  21. # 用户ID
  22. user_id: str
  23. # 项目ID
  24. project_id: str
  25. class JmHomeworkCreate(JmHomeworkBase):
  26. relation_list: Optional[List[JmHomeworkDatasourceRelationCreate]] = None
  27. class Config:
  28. schema_extra = {
  29. "example": {
  30. "name": "监察流水线",
  31. "type": "java",
  32. "tag": "作业监测",
  33. "image_url": "/test/images/example",
  34. "dag_uuid": "",
  35. "dag_url": "",
  36. "script_file": "/test/scripts/example",
  37. "execute_command": "ls",
  38. "user_id": "test",
  39. "project_id": "test",
  40. "relation_list": [
  41. {
  42. "type": "input",
  43. "datasource_id": 1,
  44. "node_uuid": "77a6e831-bb62-42e1-be8d-97699db00e73",
  45. "table": "jm_homework_datasource_relation",
  46. }
  47. ]
  48. }
  49. }
  50. class JmHomeworkUpdate(JmHomeworkBase):
  51. relation_list: Optional[List[JmHomeworkDatasourceRelationCreate]] = None
  52. class Config:
  53. schema_extra = {
  54. "example": {
  55. "name": "监察流水线",
  56. "type": "DAG",
  57. "tag": "作业监测",
  58. "image_url": "/test/images/example",
  59. "dag_uuid": "",
  60. "dag_url": "",
  61. "script_file": "/test/scripts/example",
  62. "execute_command": "ls",
  63. "user_id": "test",
  64. "project_id": "test",
  65. "relation_list": [
  66. {
  67. "type": "input",
  68. "datasource_id": 1,
  69. "node_uuid": "77a6e831-bb62-42e1-be8d-97699db00e73",
  70. "table": "jm_homework_datasource_relation",
  71. }
  72. ]
  73. }
  74. }
  75. class JmHomework(JmHomeworkBase):
  76. id: int
  77. # 创建时间
  78. create_time: int
  79. # 更新时间
  80. update_time: int
  81. # 状态
  82. status: int
  83. class Config:
  84. orm_mode = True