Files
shanxia2.0/backend/app/schemas/pl/cancel_reason.py
T

27 lines
775 B
Python

"""作废/取消原因共用 Schema 与工具。"""
from __future__ import annotations
from typing import Optional
from pydantic import BaseModel, Field
def normalize_optional_reason(value: Optional[str]) -> Optional[str]:
if value is None:
return None
text = str(value).strip()
return text or None
class CancelReasonBody(BaseModel):
operation_id: Optional[str] = Field(default=None, alias="operationId", min_length=1, max_length=64)
cancel_reason: Optional[str] = Field(default=None, alias="cancelReason", max_length=500)
model_config = {"populate_by_name": True}
class VoidReasonBody(BaseModel):
void_reason: Optional[str] = Field(default=None, alias="voidReason", max_length=500)
model_config = {"populate_by_name": True}