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