40 lines
723 B
Python
40 lines
723 B
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from pydantic import BaseModel
|
||
|
|
|
||
|
|
|
||
|
|
class PluginSummaryDTO(BaseModel):
|
||
|
|
plugin_id: str
|
||
|
|
name: str
|
||
|
|
version: str
|
||
|
|
channel_type: str
|
||
|
|
status: str
|
||
|
|
source: str
|
||
|
|
is_configured: bool
|
||
|
|
|
||
|
|
|
||
|
|
class PluginDetailDTO(BaseModel):
|
||
|
|
plugin_id: str
|
||
|
|
name: str
|
||
|
|
version: str
|
||
|
|
channel_type: str
|
||
|
|
status: str
|
||
|
|
source: str
|
||
|
|
is_configured: bool
|
||
|
|
capabilities: dict
|
||
|
|
config_schema: dict | None = None
|
||
|
|
registered_at: str | None = None
|
||
|
|
error: str | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class PluginListDTO(BaseModel):
|
||
|
|
plugins: list[PluginSummaryDTO]
|
||
|
|
total: int
|
||
|
|
|
||
|
|
|
||
|
|
class ReloadResultDTO(BaseModel):
|
||
|
|
plugin_id: str
|
||
|
|
old_version: str
|
||
|
|
new_version: str
|
||
|
|
success: bool
|