| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- from datetime import datetime
- from typing import TYPE_CHECKING
- from pydantic import BaseModel, Field
- from core_shared import JSONValue
- if TYPE_CHECKING:
- from app.db.models import AppDefinition, AppVersion
- class AppCreateRequest(BaseModel):
- tenant_id: str
- code: str
- name: str
- description: str | None = None
- owner_user_id: str | None = None
- settings_json: dict[str, JSONValue] = Field(default_factory=dict)
- class AppResponse(BaseModel):
- id: str
- tenant_id: str
- code: str
- name: str
- description: str | None = None
- owner_user_id: str | None = None
- settings_json: dict[str, JSONValue] | None = None
- created_time: datetime
- @classmethod
- def from_entity(cls, entity: "AppDefinition") -> "AppResponse":
- return cls.model_validate(entity, from_attributes=True)
- class AppVersionCreateRequest(BaseModel):
- tenant_id: str
- app_id: str
- workflow_version_id: str
- status: str = "draft"
- published_by: str | None = None
- changelog: str | None = None
- class AppVersionResponse(BaseModel):
- id: str
- tenant_id: str
- app_id: str
- version_no: int
- workflow_version_id: str
- status: str
- published_time: datetime | None = None
- published_by: str | None = None
- changelog: str | None = None
- created_time: datetime
- @classmethod
- def from_entity(cls, entity: "AppVersion") -> "AppVersionResponse":
- return cls.model_validate(entity, from_attributes=True)
|