56a7a274d9
- 前端动画类型选择扩展至12个学科(数学/物理/化学/生物/地理/语文/英语/历史/政治/美术/音乐/通用) - 后端schema验证同步更新支持所有新学科类型 - 扩展inferAnimationType自动推断函数支持更多学科关键词 - 添加Ctrl+K键盘快捷键聚焦全局搜索框 - 搜索框添加键盘快捷键提示徽章 - 添加focus-visible焦点样式和prefers-reduced-motion动画减弱 - 添加text-ellipsis/clamp-2/clamp-3工具类 - 添加smooth scroll平滑滚动
41 lines
1.2 KiB
Python
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}
|