74 lines
2.3 KiB
Python
74 lines
2.3 KiB
Python
|
|
from datetime import datetime
|
||
|
|
from pydantic import BaseModel, ConfigDict, Field
|
||
|
|
from pydantic.alias_generators import to_camel
|
||
|
|
from pydantic_validation_decorator import NotBlank
|
||
|
|
from typing import Optional
|
||
|
|
from module_admin.annotation.pydantic_annotation import as_query
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
class Test_itemModel(BaseModel):
|
||
|
|
"""
|
||
|
|
测试单元表对应pydantic模型
|
||
|
|
"""
|
||
|
|
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
|
||
|
|
|
||
|
|
id: Optional[int] = Field(default=None, description='ID')
|
||
|
|
name: Optional[str] = Field(default=None, description='名称')
|
||
|
|
test_category_id: Optional[int] = Field(default=None, description='测试类别ID')
|
||
|
|
test_category_name: Optional[str] = Field(default=None, description='测试类别名称')
|
||
|
|
eut_type_id: Optional[int] = Field(default=None, description='产品类别ID')
|
||
|
|
eut_type_name: Optional[str] = Field(default=None, description='产品类别名称')
|
||
|
|
config_json: Optional[str] = Field(default=None, description='模板JSON')
|
||
|
|
memo: Optional[str] = Field(default=None, description='备注说明')
|
||
|
|
update_by: Optional[int] = Field(default=None, description='更新者')
|
||
|
|
update_time: Optional[datetime] = Field(default=None, description='修改时间')
|
||
|
|
|
||
|
|
@NotBlank(field_name='name', message='名称不能为空')
|
||
|
|
def get_name(self):
|
||
|
|
return self.name
|
||
|
|
|
||
|
|
@NotBlank(field_name='test_category_id', message='测试类别ID不能为空')
|
||
|
|
def get_test_category_id(self):
|
||
|
|
return self.test_category_id
|
||
|
|
|
||
|
|
@NotBlank(field_name='eut_type_id', message='产品类别ID不能为空')
|
||
|
|
def get_eut_type_id(self):
|
||
|
|
return self.eut_type_id
|
||
|
|
|
||
|
|
|
||
|
|
def validate_fields(self):
|
||
|
|
self.get_name()
|
||
|
|
self.get_test_category_id()
|
||
|
|
self.get_eut_type_id()
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
class Test_itemQueryModel(Test_itemModel):
|
||
|
|
"""
|
||
|
|
测试单元不分页查询模型
|
||
|
|
"""
|
||
|
|
pass
|
||
|
|
|
||
|
|
|
||
|
|
@as_query
|
||
|
|
class Test_itemPageQueryModel(Test_itemQueryModel):
|
||
|
|
"""
|
||
|
|
测试单元分页查询模型
|
||
|
|
"""
|
||
|
|
|
||
|
|
page_num: int = Field(default=1, description='当前页码')
|
||
|
|
page_size: int = Field(default=10, description='每页记录数')
|
||
|
|
|
||
|
|
|
||
|
|
class DeleteTest_itemModel(BaseModel):
|
||
|
|
"""
|
||
|
|
删除测试单元模型
|
||
|
|
"""
|
||
|
|
|
||
|
|
model_config = ConfigDict(alias_generator=to_camel)
|
||
|
|
|
||
|
|
ids: str = Field(description='需要删除的ID')
|