| 12345678910111213141516171819202122232425262728 |
- """车油卡台账输入:卡号始终为字符串,租户不接受客户端覆盖。"""
- from __future__ import annotations
- from typing import List, Optional
- from pydantic import BaseModel, ConfigDict, Field, field_validator
- class CreateBody(BaseModel):
- model_config = ConfigDict(populate_by_name=True, extra="forbid", str_strip_whitespace=True)
- license_plate: str = Field(..., alias="licensePlate", min_length=1, max_length=20)
- card_no: str = Field(..., alias="cardNo", min_length=1, max_length=64, pattern=r"^[0-9]+$")
- remark: Optional[str] = Field(default=None, max_length=512)
- @field_validator("license_plate")
- @classmethod
- def normalize_plate(cls, value: str) -> str:
- return value.upper()
- class UpdateBody(CreateBody):
- """PUT 使用完整业务字段,与新增及表单字段一致。"""
- class BatchDeleteBody(BaseModel):
- model_config = ConfigDict(extra="forbid")
- ids: List[str] = Field(..., min_length=1, max_length=500)
|