Files
FastapiAdmin/backend/app/api/v1/module_system/params/schema.py
T
zhangtao 42fa1944e0 refactor: 统一状态字段类型为字符串并移除租户配额功能
- 将多个模型中的status字段从布尔值改为字符串类型
- 移除租户配额相关字段和功能
- 优化任务调度器中的租户上下文处理
- 清理无用代码和注释
2025-11-28 00:59:38 +08:00

64 lines
2.2 KiB
Python

# -*- coding: utf-8 -*-
from typing import Optional
from pydantic import BaseModel, ConfigDict, Field, field_validator
from fastapi import Query
from app.core.validator import DateTimeStr
from app.core.base_schema import BaseSchema
class ParamsCreateSchema(BaseModel):
"""配置创建模型"""
config_name: str = Field(..., max_length=500, description="参数名称")
config_key: str = Field(..., max_length=500, description="参数键名")
config_value: Optional[str] = Field(default=None, description="参数键值")
config_type: bool = Field(default=False, description="系统内置(True:是 False:否)")
status: str = Field(default="0", description="状态(True:正常 False:停用)")
description: Optional[str] = Field(default=None, max_length=500, description="描述")
@field_validator('config_key')
@classmethod
def _validate_config_key(cls, v: str) -> str:
v = v.strip().lower()
import re
if not re.match(r'^[a-z][a-z0-9_.-]*$', v):
raise ValueError('参数键名必须以小写字母开头,仅包含小写字母/数字/_.-')
return v
class ParamsUpdateSchema(ParamsCreateSchema):
"""配置更新模型"""
...
class ParamsOutSchema(ParamsCreateSchema, BaseSchema):
"""配置响应模型"""
model_config = ConfigDict(from_attributes=True)
class ParamsQueryParam:
"""配置管理查询参数"""
def __init__(
self,
config_name: Optional[str] = Query(None, description="配置名称"),
config_key: Optional[str] = Query(None, description="配置键名"),
config_type: Optional[bool] = Query(None, description="系统内置((True:是 False:否))"),
created_time: Optional[list[DateTimeStr]] = Query(None, description="创建时间范围", example=["2025-01-01 00:00:00", "2025-12-31 23:59:59"]),
) -> None:
# 模糊查询字段
self.config_name = ("like", config_name)
self.config_key = ("like", config_key)
# 精确查询字段
self.config_type = config_type
# 时间范围查询
if created_time and len(created_time) == 2:
self.created_time = ("between", (created_time[0], created_time[1]))