""" 字典项Schema定义 """ from pydantic import BaseModel, Field from typing import Optional from datetime import datetime class DictItemBase(BaseModel): """字典项基础模型""" dict_name: str = Field(..., max_length=512, description="字典名称") dict_value: str = Field(..., max_length=512, description="字典值") dict_desc: Optional[str] = Field(None, max_length=512, description="字典备注") category_id: str = Field(..., max_length=255, description="字典类型id") enable_flag: str = Field(default="1", max_length=1, description="启用标志位:1启用0禁用") sort: Optional[int] = Field(None, description="排序") class DictItemCreate(DictItemBase): """创建字典项请求模型""" pass class DictItemUpdate(BaseModel): """更新字典项请求模型""" dict_name: Optional[str] = Field(None, max_length=512, description="字典名称") dict_value: Optional[str] = Field(None, max_length=512, description="字典值") dict_desc: Optional[str] = Field(None, max_length=512, description="字典备注") category_id: Optional[str] = Field(None, max_length=255, description="字典类型id") enable_flag: Optional[str] = Field(None, max_length=1, description="启用标志位:1启用0禁用") sort: Optional[int] = Field(None, description="排序") class DictItemResponse(DictItemBase): """字典项响应模型""" dict_id: int = Field(..., description="字典id") del_flag: str = Field(default="0", description="删除标志位:1是0否") created_by: Optional[str] = Field(None, description="创建人") created_time: Optional[datetime] = Field(None, description="创建时间") updated_by: Optional[str] = Field(None, description="修改人") updated_time: Optional[datetime] = Field(None, description="修改时间") created_by_name: Optional[str] = Field(None, description="创建人姓名") updated_by_name: Optional[str] = Field(None, description="修改人姓名") category_name: Optional[str] = Field(None, description="字典类型名称") class Config: from_attributes = True class DictItemListRequest(BaseModel): """字典项列表查询请求""" category_id: Optional[str] = Field(None, description="字典类型id") keyword: Optional[str] = Field(None, description="关键字搜索") enable_flag: Optional[str] = Field(None, description="启用标志位") page: int = Field(default=1, ge=1, description="页码") page_size: int = Field(default=10, ge=1, le=100, description="每页数量") class DictItemBatchDeleteRequest(BaseModel): """批量删除字典项请求""" dict_ids: list[int] = Field(..., description="字典项id列表")