run_request.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from datetime import datetime
  2. from typing import TYPE_CHECKING
  3. from core_shared import JSONValue
  4. from pydantic import BaseModel, Field
  5. if TYPE_CHECKING:
  6. from app.db.models import RunRequest
  7. class RunRequestCreateRequest(BaseModel):
  8. session_id: str
  9. app_config_id: str
  10. workflow_config_id: str
  11. trigger_type: str = "chat"
  12. request_payload_json: dict[str, JSONValue] = Field(default_factory=dict)
  13. request_status: str = "accepted"
  14. class RunRequestListRequest(BaseModel):
  15. session_id: str
  16. class RunRequestDetailRequest(BaseModel):
  17. run_request_id: str
  18. class RunRequestUpdateRequest(BaseModel):
  19. run_request_id: str
  20. request_payload_json: dict[str, JSONValue] | None = None
  21. request_status: str | None = None
  22. class RunRequestResponse(BaseModel):
  23. id: str
  24. session_id: str
  25. app_config_id: str
  26. workflow_config_id: str
  27. trigger_type: str
  28. request_payload_json: dict[str, JSONValue] | None = None
  29. request_status: str
  30. created_time: datetime
  31. @classmethod
  32. def from_entity(cls, entity: "RunRequest") -> "RunRequestResponse":
  33. return cls.model_validate(entity, from_attributes=True)