""" Pydantic 模式定义 """ from pydantic import BaseModel, Field, field_validator import re class ProjectCreateRequest(BaseModel): """项目创建请求""" project_name: str = Field(..., description="项目文件夹名称", min_length=1, max_length=100) @field_validator("project_name") @classmethod def validate_project_name(cls, v: str) -> str: """ 验证项目名: - 仅允许中英文、数字、下划线、横杠 - 禁止路径逃逸字符 """ # 检查是否包含路径逃逸字符 if ".." in v or "/" in v or "\\" in v: raise ValueError("项目名称不能包含路径逃逸字符 (../ 或 / 或 \\)") # 验证项目名称格式:仅允许中英文、数字、下划线、横杠 pattern = r"^[\w一-龥\-]+$" if not re.match(pattern, v): raise ValueError("项目名称仅允许包含中英文、数字、下划线、横杠") return v class ProjectCreateResponse(BaseModel): """项目创建响应""" success: bool = True message: str project_path: str