Files
jiaoyu/backend/schemas/animation.py
T
Zhang Jing Xuan 56a7a274d9 feat: 扩展动画学科类型、添加Ctrl+K搜索快捷键、无障碍优化
- 前端动画类型选择扩展至12个学科(数学/物理/化学/生物/地理/语文/英语/历史/政治/美术/音乐/通用)
- 后端schema验证同步更新支持所有新学科类型
- 扩展inferAnimationType自动推断函数支持更多学科关键词
- 添加Ctrl+K键盘快捷键聚焦全局搜索框
- 搜索框添加键盘快捷键提示徽章
- 添加focus-visible焦点样式和prefers-reduced-motion动画减弱
- 添加text-ellipsis/clamp-2/clamp-3工具类
- 添加smooth scroll平滑滚动
2026-07-30 15:07:26 +08:00

41 lines
1.2 KiB
Python

from pydantic import BaseModel, Field
from datetime import datetime
from typing import Optional, Any
class AnimationGenerate(BaseModel):
prompt: str = Field(..., min_length=1, description="教学动画描述")
anim_type: str = Field(default="general", pattern=r"^(math|physics|chemistry|biology|geography|chinese|english|history|politics|art|music|general)$")
subject: str = Field(default="", max_length=50)
class AnimationCreate(BaseModel):
title: str = Field(..., min_length=1, max_length=200)
anim_type: str = "general"
description: str = ""
config: dict[str, Any] = {}
class AnimationUpdate(BaseModel):
title: Optional[str] = None
anim_type: Optional[str] = None
description: Optional[str] = None
config: Optional[dict[str, Any]] = None
thumbnail: Optional[str] = None
status: Optional[str] = None
class AnimationOut(BaseModel):
id: int
user_id: int
title: str
anim_type: str = "general"
description: str = ""
config: dict = {}
thumbnail: str = ""
status: str = "draft"
created_at: datetime | None = None
updated_at: datetime | None = None
model_config = {"from_attributes": True}