Files
my-v0-server/app/schemas/actions/resize.py
T
2026-10-01 23:08:06 -07:00

28 lines
827 B
Python

"""设置组件的绝对尺寸"""
from typing import Literal, Self
from pydantic import Field, model_validator
from app.schemas.screen import PositiveNumber
from .base import BaseAction
class ResizeAction(BaseAction):
"""设置组件的绝对宽高,不改变位置"""
type: Literal["resize"] = "resize"
width: PositiveNumber | None = Field(
default=None, description="目标宽度,单位 px,省略或 null 表示保持原值"
)
height: PositiveNumber | None = Field(
default=None, description="目标高度,单位 px,省略或 null 表示保持原值"
)
@model_validator(mode="after")
def require_size(self) -> Self:
if self.width is None and self.height is None:
raise ValueError("resize 至少提供 width 或 height")
return self