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} |