重构前保存现有 apps/ 结构基线,供后续各阶段回滚。 Co-Authored-By: Claude <noreply@anthropic.com>
45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
# 广告表单验证
|
|
class AdForm(BaseModel):
|
|
# 广告ID
|
|
id: Optional[int] = Field(None, description="广告ID")
|
|
# 广告标题
|
|
title: str = Field(..., min_length=1, max_length=255, description="广告标题")
|
|
# 广告位ID
|
|
sort_id: int = Field(..., ge=0, description="广告位ID")
|
|
# 广告类型:1-图片 2-文字 3-视频 4-推荐
|
|
type: int = Field(..., ge=1, le=4, description="广告类型")
|
|
# 广告封面
|
|
cover: Optional[str] = Field(None, max_length=255, description="广告封面")
|
|
# 广告URL
|
|
url: str = Field(..., min_length=1, max_length=255, description="广告URL")
|
|
# 广告宽度
|
|
width: int = Field(..., ge=0, description="广告宽度")
|
|
# 广告高度
|
|
height: int = Field(..., ge=0, description="广告高度")
|
|
# 开始时间
|
|
start_time: datetime = Field(..., description="开始时间")
|
|
# 结束时间
|
|
end_time: datetime = Field(..., description="结束时间")
|
|
# 广告状态
|
|
status: int = Field(..., ge=1, le=2, description="广告状态")
|
|
# 广告排序
|
|
sort: int = Field(..., ge=0, le=99999, description="广告排序")
|
|
# 广告备注
|
|
note: Optional[str] = Field(None, max_length=255, description="广告备注")
|
|
# 广告内容
|
|
content: Optional[str] = Field(None, description="广告内容")
|
|
|
|
|
|
# 设置状态表单
|
|
class AdStatusForm(BaseModel):
|
|
# 广告ID
|
|
id: int = Field(..., gt=0, description="广告ID")
|
|
# 广告状态
|
|
status: int = Field(..., ge=1, le=2, description="广告状态")
|