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_jobModel(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_item_id: Optional[int] = Field(default=None, description='流程ID') tester_id: Optional[int] = Field(default=None, description='测试人ID') tester_name: Optional[str] = Field(default=None, description='测试人名称') reviewer_id: Optional[int] = Field(default=None, description='一审人员ID') reviewer_name: Optional[str] = Field(default=None, description='一审人员名称') second_tester_id: Optional[int] = Field(default=None, description='二审人员ID') second_tester_name: Optional[str] = Field(default=None, description='二审人员名称') third_tester_id: Optional[int] = Field(default=None, description='三审人员人ID') third_tester_name: Optional[str] = Field(default=None, description='三审人员名称') memo: Optional[str] = Field(default=None, description='备注说明') @NotBlank(field_name='name', message='作业名称不能为空') def get_name(self): return self.name def validate_fields(self): self.get_name() class Test_jobQueryModel(Test_jobModel): """ 作业不分页查询模型 """ pass @as_query class Test_jobPageQueryModel(Test_jobQueryModel): """ 作业分页查询模型 """ page_num: int = Field(default=1, description='当前页码') page_size: int = Field(default=10, description='每页记录数') class DeleteTest_jobModel(BaseModel): """ 删除作业模型 """ model_config = ConfigDict(alias_generator=to_camel) ids: str = Field(description='需要删除的作业ID')