112 lines
3.0 KiB
Python
112 lines
3.0 KiB
Python
"""管理后台请求模型(对应《03-接口文档》第 11 章)"""
|
||
from pydantic import BaseModel, Field
|
||
|
||
|
||
class AdminLoginReq(BaseModel):
|
||
"""管理员登录(11.1)"""
|
||
|
||
username: str = Field(min_length=1, max_length=50)
|
||
password: str = Field(min_length=1, max_length=100)
|
||
|
||
|
||
class VideoReviewReq(BaseModel):
|
||
"""审核视频(11.4)"""
|
||
|
||
action: str = Field(pattern="^(approve|reject)$")
|
||
reason: str | None = Field(None, max_length=200)
|
||
|
||
|
||
class ReasonReq(BaseModel):
|
||
"""通用敏感操作原因(下架视频 / 删除评论等)"""
|
||
|
||
reason: str = Field(min_length=1, max_length=200)
|
||
|
||
|
||
class UserStatusReq(BaseModel):
|
||
"""封禁/解封用户(11.8)"""
|
||
|
||
status: int = Field(ge=1, le=2) # 1正常 2封禁
|
||
reason: str = Field(min_length=1, max_length=200)
|
||
|
||
|
||
class PointsAdjustReq(BaseModel):
|
||
"""积分调整(11.9)"""
|
||
|
||
user_id: int = Field(ge=1)
|
||
change_amount: int = Field(ge=-1000000, le=1000000) # 非 0 由服务端校验
|
||
reason: str = Field(min_length=1, max_length=200)
|
||
|
||
|
||
class ResettleReq(BaseModel):
|
||
"""人工补单(11.12)"""
|
||
|
||
reason: str = Field(min_length=1, max_length=200)
|
||
third_trade_no: str | None = Field(None, max_length=64)
|
||
|
||
|
||
class RefundReq(BaseModel):
|
||
"""退款登记(11.12-2【敏感】):reason 必填"""
|
||
|
||
reason: str = Field(min_length=1, max_length=200)
|
||
|
||
|
||
class PackageCreateReq(BaseModel):
|
||
"""新增充值套餐(11.14)"""
|
||
|
||
amount_yuan: int = Field(ge=1, le=100000)
|
||
bonus_points: int = Field(0, ge=0)
|
||
sort: int = 0
|
||
points: int | None = Field(None, ge=0) # 不传则按汇率计算
|
||
|
||
|
||
class PackageUpdateReq(BaseModel):
|
||
"""修改充值套餐(11.15)"""
|
||
|
||
amount_yuan: int | None = Field(None, ge=1, le=100000)
|
||
bonus_points: int | None = Field(None, ge=0)
|
||
sort: int | None = None
|
||
status: int | None = Field(None, ge=0, le=1)
|
||
|
||
|
||
class GiftReq(BaseModel):
|
||
"""赠送会员/积分(11.17)"""
|
||
|
||
user_ids: list[int] = Field(min_length=1, max_length=100)
|
||
gift_type: str = Field(pattern="^(membership|points)$")
|
||
plan_code: str | None = Field(None, max_length=20)
|
||
points: int | None = Field(None, gt=0, le=1000000)
|
||
reason: str = Field(min_length=1, max_length=200)
|
||
|
||
|
||
class WithdrawReviewReq(BaseModel):
|
||
"""提现审核(11.20)"""
|
||
|
||
action: str = Field(pattern="^(approve|reject)$")
|
||
reason: str | None = Field(None, max_length=200)
|
||
|
||
|
||
class ReferralReviewReq(BaseModel):
|
||
"""推荐风控处理(11.22)"""
|
||
|
||
action: str = Field(pattern="^(release|invalid)$")
|
||
reason: str = Field(min_length=1, max_length=200)
|
||
|
||
|
||
class ConfigUpdateReq(BaseModel):
|
||
"""修改平台配置(11.24)"""
|
||
|
||
value: str = Field(max_length=500)
|
||
|
||
|
||
class ReportReviewReq(BaseModel):
|
||
"""举报处理(11.29)"""
|
||
|
||
action: str = Field(pattern="^(offline_video|delete_comment|reject)$")
|
||
reason: str = Field(min_length=1, max_length=200)
|
||
|
||
|
||
class SensitiveWordAddReq(BaseModel):
|
||
"""添加敏感词(11.31)"""
|
||
|
||
word: str = Field(min_length=1, max_length=50)
|