Files
my-v0-server/app/schemas/actions/__init__.py
T

39 lines
998 B
Python

"""动作类型统一入口,新增操作时在这里显式加入联合类型"""
from typing import Annotated
from pydantic import Field, TypeAdapter
from .add import AddAction
from .base import ActionModel, BaseAction
from .delete import DeleteAction
from .move import MoveAction
from .resize import ResizeAction
from .update import UpdateAction
from .update_canvas import UpdateCanvasAction
# 按 type 选择对应模型,不维护重复的操作名称映射
Action = Annotated[
AddAction | DeleteAction | MoveAction | ResizeAction | UpdateAction | UpdateCanvasAction,
Field(discriminator="type"),
]
action_adapter = TypeAdapter(Action)
class ActionBatch(ActionModel):
actions: list[Action] = Field(description="按数组顺序执行的动作列表,允许为空")
__all__ = [
"Action",
"ActionBatch",
"AddAction",
"BaseAction",
"DeleteAction",
"MoveAction",
"ResizeAction",
"UpdateAction",
"UpdateCanvasAction",
"action_adapter",
]