You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

109 lines
4.0 KiB

from pydantic import BaseModel
from typing import Union, Optional, List
from datetime import datetime
from module_admin.annotation.pydantic_annotation import as_query
from pydantic import BaseModel, ConfigDict, Field
from pydantic.alias_generators import to_camel
from pydantic_validation_decorator import NotBlank, Size
class CrudMetaSecurityModel(BaseModel):
is_success: bool
message: str
class MetaSecurityRowModel(BaseModel):
"""
数据源行控制表对应Pydantic模型
"""
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
rowId: Optional[str] = None
create_by: Optional[str] = None
create_time: Optional[datetime] = None
update_by: Optional[str] = None
update_time: Optional[datetime] = None
dbRName: Optional[str] = None
dbRID: Optional[int] = None
dbSName: Optional[str] = None
dbTName: Optional[str] = None
dbCName: Optional[str] = None
ctrl_type: Optional[str] = None # control type (e.g., '0', '1', '2')
obj_type: Optional[str] = None # object type (e.g., '0', '1')
obj_value: Optional[object] = None
obj_name: Optional[object] = None
isStop: Optional[bool] = None
ctrl_value: Optional[str] = None
ctrl_table: Optional[str] = None
ctrl_col: Optional[str] = None
ctrl_system: Optional[str] = None
class MetaSecurityColModel(BaseModel):
"""
数据源控制表对应Pydantic模型
"""
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
colId: Optional[str] = None
create_by: Optional[str] = None
create_time: Optional[datetime] = None
update_by: Optional[str] = None
update_time: Optional[datetime] = None
dbRName: Optional[str] = None
dbRID: Optional[int] = None
dbSName: Optional[str] = None
dbTName: Optional[str] = None
dbCName: Optional[str] = None
ctrl_type: Optional[str] = None # control type (e.g., '0', '1')
obj_type: Optional[str] = None # object type (e.g., '0', '1')
obj_value: Optional[object] = None
obj_name: Optional[object] = None
isStop: Optional[bool] = None
@as_query
class MetaSecurityRowPageQueryModel(MetaSecurityRowModel):
"""
元数据任务分页查询模型
"""
page_num: int = Field(default=1, description='当前页码')
page_size: int = Field(default=10, description='每页记录数')
@as_query
class MetaSecurityColPageQueryModel(MetaSecurityColModel):
"""
元数据任务分页查询模型
"""
page_num: int = Field(default=1, description='当前页码')
page_size: int = Field(default=10, description='每页记录数')
class DeleteMetaSecurityModel(BaseModel):
"""
删除参数配置模型
"""
model_config = ConfigDict(alias_generator=to_camel)
metaSecurity_ids: str = Field(description='需要删除的参数主键')
class MetaSecurityApiModel(BaseModel):
"""
数据源行控制表对应Pydantic模型
"""
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
dbRCode: Optional[str] = None
username: Optional[str] = Field(default=None, description='用户名称')
password: Optional[str] = Field(default=None, description='用户密码')
sqlStr: Optional[str] = Field(default=None, description='sql')
isPage: Optional[bool] = Field(default=False, description='是否分页')
pageNum: Optional[int] = Field(default=1, description='sql')
pageSize: Optional[int] = Field(default=10, description='sql')
@NotBlank(field_name='username', message='用户名称不能为空')
@Size(field_name='username', min_length=0, max_length=100, message='用户名称长度不能超过100个字符')
def get_username(self):
return self.username
@NotBlank(field_name='password', message='用户密码不能为空')
def get_password(self):
return self.password
@NotBlank(field_name='sqlStr', message='sql不能为空')
def get_sqlStr(self):
return self.username
def validate_fields(self):
self.get_username()
self.get_password()
self.get_sqlStr()