import json from pydantic import BaseModel, field_validator from typing import Optional, Dict, Any, Literal class AccountBase(BaseModel): pool_name: str username: str password: Optional[str] = None extra_data: Optional[Dict[str, Any]] = None status: Optional[Literal['active','disable']] = None lock_until: float = 0 @field_validator("extra_data", mode="before") def normalize_json_field(cls, v): if v is None: return None if isinstance(v, str): try: return json.loads(v) except Exception: return {} return v # --- 4. 请求/响应 Schema (Pydantic) --- class AccountCreate(AccountBase): pass class AccountResponse(AccountBase): id: int model_config = { "from_attributes": True } class LockRequest(BaseModel): pool_name: str username: str duration: Optional[int] = None