Files
my-v0-server/app/schemas/actions/__init__.py
T
2026-10-15 03:38:20 -07:00

63 lines
1.5 KiB
Python

"""动作类型统一入口,新增操作时在这里显式加入联合类型"""
from typing import Annotated
from pydantic import Field
from .add import AddAction
from .base import ActionModel, BaseAction
from .delete import DeleteAction
from .layout import AlignAction, ArrangeAction, DistributeAction, SetLayoutAction
from .move import MoveAction
from .resize import ResizeAction
from .set_interaction import SetInteractionAction
from .update import UpdateAction
from .update_canvas import UpdateCanvasAction
# 按 type 选择对应模型,不维护重复的操作名称映射
Action = Annotated[
AddAction
| DeleteAction
| MoveAction
| ResizeAction
| UpdateAction
| UpdateCanvasAction
| SetInteractionAction,
Field(discriminator="type"),
]
# 模型可以提交的动作:前端协议 + 布局意图
# 布局意图由后端展开成 move 和 resize,不会返回给前端
AgentAction = Annotated[
AddAction
| DeleteAction
| MoveAction
| ResizeAction
| UpdateAction
| UpdateCanvasAction
| SetInteractionAction
| ArrangeAction
| AlignAction
| DistributeAction
| SetLayoutAction,
Field(discriminator="type"),
]
__all__ = [
"Action",
"AgentAction",
"AlignAction",
"ArrangeAction",
"DistributeAction",
"SetLayoutAction",
"ActionModel",
"AddAction",
"BaseAction",
"DeleteAction",
"MoveAction",
"ResizeAction",
"SetInteractionAction",
"UpdateAction",
"UpdateCanvasAction",
]