| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from datetime import datetime
- from typing import TYPE_CHECKING
- from pydantic import BaseModel
- from core_domain import WorkflowVersionContract
- from core_shared import JSONValue
- if TYPE_CHECKING:
- from app.db.models import WorkflowDefinitionModel, WorkflowVersion
- class WorkflowCreateRequest(BaseModel):
- tenant_id: str
- app_id: str
- code: str
- name: str
- workflow_type: str = "main"
- class WorkflowDefinitionResponse(BaseModel):
- id: str
- tenant_id: str
- app_id: str
- code: str
- name: str
- workflow_type: str
- latest_version_no: int
- created_time: datetime
- @classmethod
- def from_entity(cls, entity: "WorkflowDefinitionModel") -> "WorkflowDefinitionResponse":
- return cls.model_validate(entity, from_attributes=True)
- class WorkflowVersionCreateRequest(BaseModel):
- tenant_id: str
- workflow_id: str
- dsl_json: dict[str, JSONValue] | None = None
- compiled_plan_json: dict[str, JSONValue] | None = None
- schema_version: str | None = None
- checksum: str | None = None
- status: str = "draft"
- class WorkflowVersionResponse(WorkflowVersionContract):
- @classmethod
- def from_entity(cls, entity: "WorkflowVersion") -> "WorkflowVersionResponse":
- return cls.model_validate(entity, from_attributes=True)
|