38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
from datetime import datetime
|
|
from pydantic import BaseModel, Field
|
|
from typing import List, Optional
|
|
|
|
|
|
# ------------------------------
|
|
# 请求模型(前端传参校验)
|
|
# ------------------------------
|
|
class SensitiveCreateRequest(BaseModel):
|
|
"""创建敏感信息记录请求模型"""
|
|
name: str = Field(..., max_length=255, description="敏感词内容(必填)")
|
|
|
|
|
|
class SensitiveUpdateRequest(BaseModel):
|
|
"""更新敏感信息记录请求模型"""
|
|
name: Optional[str] = Field(None, max_length=255, description="敏感词内容(可选修改)")
|
|
|
|
|
|
# ------------------------------
|
|
# 响应模型(后端返回数据)
|
|
# ------------------------------
|
|
class SensitiveResponse(BaseModel):
|
|
"""敏感信息单条记录响应模型"""
|
|
id: int = Field(..., description="主键ID")
|
|
name: str = Field(..., description="敏感词内容")
|
|
created_at: datetime = Field(..., description="记录创建时间")
|
|
updated_at: datetime = Field(..., description="记录更新时间")
|
|
|
|
# 支持从数据库查询结果(字典/对象)自动转换
|
|
model_config = {"from_attributes": True}
|
|
|
|
|
|
class SensitiveListResponse(BaseModel):
|
|
"""敏感信息分页列表响应模型(新增)"""
|
|
total: int = Field(..., description="敏感词总记录数")
|
|
sensitives: List[SensitiveResponse] = Field(..., description="当前页敏感词列表")
|
|
|
|
model_config = {"from_attributes": True} |