app.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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 AppDefinition, AppConfig
  7. class AppCreateRequest(BaseModel):
  8. code: str
  9. name: str
  10. description: str | None = None
  11. owner_user_id: str | None = None
  12. settings_json: dict[str, JSONValue] = Field(default_factory=dict)
  13. class AppListRequest(BaseModel):
  14. pass
  15. class AppResponse(BaseModel):
  16. id: str
  17. code: str
  18. name: str
  19. description: str | None = None
  20. owner_user_id: str | None = None
  21. settings_json: dict[str, JSONValue] | None = None
  22. created_time: datetime
  23. @classmethod
  24. def from_entity(cls, entity: "AppDefinition") -> "AppResponse":
  25. return cls.model_validate(entity, from_attributes=True)
  26. class AppConfigCreateRequest(BaseModel):
  27. app_id: str
  28. workflow_config_id: str
  29. class AppConfigListRequest(BaseModel):
  30. app_id: str
  31. class AppConfigResponse(BaseModel):
  32. id: str
  33. app_id: str
  34. workflow_config_id: str
  35. created_time: datetime
  36. @classmethod
  37. def from_entity(cls, entity: "AppConfig") -> "AppConfigResponse":
  38. return cls.model_validate(entity, from_attributes=True)