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="广告状态")