cancel_reason.py 671 B

12345678910111213141516171819202122232425
  1. """作废/取消原因共用 Schema 与工具。"""
  2. from __future__ import annotations
  3. from typing import Optional
  4. from pydantic import BaseModel, Field
  5. def normalize_optional_reason(value: Optional[str]) -> Optional[str]:
  6. if value is None:
  7. return None
  8. text = str(value).strip()
  9. return text or None
  10. class CancelReasonBody(BaseModel):
  11. cancel_reason: Optional[str] = Field(default=None, alias="cancelReason", max_length=500)
  12. model_config = {"populate_by_name": True}
  13. class VoidReasonBody(BaseModel):
  14. void_reason: Optional[str] = Field(default=None, alias="voidReason", max_length=500)
  15. model_config = {"populate_by_name": True}