78 lines
2.7 KiB
Python
78 lines
2.7 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='产品类别名称')
|
||
condition_form_id: Optional[int] = Field(default=None, description='测试条件表单模板ID')
|
||
condition_data: Optional[str] = Field(default=None, description='测试条件填写数据JSON')
|
||
result_form_id: Optional[int] = Field(default=None, description='测试结果表单模板ID')
|
||
condition_json: Optional[str] = Field(default=None, description='测试条件模板JSON(旧)')
|
||
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')
|