重构前保存现有 apps/ 结构基线,供后续各阶段回滚。 Co-Authored-By: Claude <noreply@anthropic.com>
33 lines
1.4 KiB
Python
33 lines
1.4 KiB
Python
from typing import Optional
|
|
|
|
from pydantic import BaseModel, Field, field_validator
|
|
|
|
|
|
# 定时任务表单验证
|
|
class JobForm(BaseModel):
|
|
id: Optional[int] = Field(None, description="任务ID")
|
|
job_name: str = Field(..., min_length=1, max_length=255, description="任务名称")
|
|
job_alias: Optional[str] = Field(None, max_length=255, description="任务别名")
|
|
job_group: Optional[str] = Field(None, max_length=255, description="任务分组")
|
|
job_trigger: Optional[str] = Field(None, max_length=255, description="任务触发器")
|
|
status: int = Field(..., ge=0, le=3, description="任务状态")
|
|
cron_expression: Optional[str] = Field(None, max_length=255, description="Cron表达式")
|
|
execute_policy: int = Field(..., ge=1, le=3, description="执行策略")
|
|
is_sync: int = Field(..., ge=0, le=1, description="是否同步任务")
|
|
url: Optional[str] = Field(None, max_length=255, description="任务URL")
|
|
params: Optional[str] = Field(None, max_length=2000, description="任务参数")
|
|
note: Optional[str] = Field(None, max_length=255, description="任务备注")
|
|
|
|
@field_validator('cron_expression')
|
|
@classmethod
|
|
def validate_cron(cls, v):
|
|
if v:
|
|
v = v.strip()
|
|
return v
|
|
|
|
|
|
# 任务状态表单
|
|
class JobStatusForm(BaseModel):
|
|
id: int = Field(..., gt=0, description="任务ID")
|
|
status: int = Field(..., ge=0, le=3, description="任务状态")
|