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.
		
		
		
		
		
			
		
			
				
					
					
						
							110 lines
						
					
					
						
							4.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							110 lines
						
					
					
						
							4.1 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
							 | 
						|
								    generate_type: 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()
							 | 
						|
								
							 |