schemas.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from __future__ import annotations
  2. from typing import Any, Dict, Optional
  3. from pydantic import BaseModel, ConfigDict, Field
  4. class BaseRequest(BaseModel):
  5. """所有请求模型基类:默认允许额外字段,避免破坏兼容性。"""
  6. model_config = ConfigDict(extra="allow")
  7. class RunTaskRequest(BaseRequest):
  8. task_name: str = Field(..., min_length=1)
  9. date_string: Optional[str] = None
  10. class TaskListRequest(BaseRequest):
  11. page: int = Field(default=1, ge=1)
  12. size: int = Field(default=50, ge=1, le=200)
  13. sort_by: str = Field(default="id", min_length=1)
  14. sort_dir: str = Field(default="desc", min_length=1)
  15. id: Optional[int] = None
  16. date_string: Optional[str] = None
  17. trace_id: Optional[str] = None
  18. task_status: Optional[int] = None
  19. class GetCoverRequest(BaseRequest):
  20. """GetCoverService 的请求体字段不固定,先保持兼容。"""
  21. # 用一个可选字段占位,避免空模型在某些场景不好读
  22. payload: Optional[Dict[str, Any]] = None
  23. class SaveTokenRequest(BaseRequest):
  24. """GzhCookieManager 的请求体字段不固定,先保持兼容。"""
  25. token: Optional[str] = None