from typing import Optional from pydantic import BaseModel, ConfigDict, Field, field_validator from apps.models.link import Link # 友链表单验证 class LinkForm(BaseModel): model_config = ConfigDict(populate_by_name=True) id: Optional[int] = Field(None, description="友链ID") name: str = Field(..., min_length=1, max_length=255, description="友链名称") type: int = Field(..., ge=1, le=2, description="友链类型") url: str = Field(..., min_length=1, max_length=255, description="友链URL") item_id: Optional[int] = Field(None, description="站点ID") cate_id: Optional[int] = Field(None, description="栏目ID") platform: int = Field(..., ge=1, le=4, description="投放平台") link_form: int = Field(..., ge=1, le=2, alias='form', description="友链形式") image: str = Field(..., min_length=1, max_length=255, 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="友链备注") # 设置状态表单 class LinkStatusForm(BaseModel): id: int = Field(..., gt=0, description="友链ID") status: int = Field(..., ge=1, le=2, description="友链状态")