from pydantic import BaseModel, Field from typing import Optional, List class TestPermissionPageQueryModel(BaseModel): """测试权限配置分页查询模型""" page_num: int = Field(1, ge=1, description='页码') page_size: int = Field(10, ge=1, le=100, description='每页数量') user_id: Optional[int] = Field(None, description='用户ID') test_category_id: Optional[int] = Field(None, description='测试类别ID') permission_type: Optional[str] = Field(None, description='权限类型') class AddTestPermissionModel(BaseModel): """新增测试权限配置模型""" user_id: int = Field(..., description='用户ID') eut_type_id: Optional[int] = Field(None, description='产品类型ID') test_category_id: Optional[int] = Field(None, description='测试类别ID') permission_type: str = Field('TESTER', description='权限类型') can_claim: bool = Field(True, description='是否可领取') max_concurrent: int = Field(5, ge=1, le=20, description='最大并行数') priority_weight: int = Field(1, ge=1, le=10, description='优先级权重') class EditTestPermissionModel(BaseModel): """编辑测试权限配置模型""" id: int = Field(..., description='权限ID') user_id: int = Field(..., description='用户ID') eut_type_id: Optional[int] = Field(None, description='产品类型ID') test_category_id: Optional[int] = Field(None, description='测试类别ID') permission_type: str = Field('TESTER', description='权限类型') can_claim: bool = Field(True, description='是否可领取') max_concurrent: int = Field(5, ge=1, le=20, description='最大并行数') priority_weight: int = Field(1, ge=1, le=10, description='优先级权重') class DeleteTestPermissionModel(BaseModel): """删除测试权限配置模型""" ids: str = Field(..., description='权限ID列表,逗号分隔')