from typing import Any, Optional def map_status_to_code(status_code: int) -> str: if status_code == 400: return "bad_request" if status_code == 401: return "unauthorized" if status_code == 403: return "forbidden" if status_code == 404: return "not_found" if status_code == 409: return "conflict" if status_code == 429: return "rate_limited" if status_code >= 500: return "server_error" return "error" def build_error_payload( *, status_code: int, message: str, details: Optional[Any] = None, code: Optional[str] = None, ) -> dict: payload = { "code": code or map_status_to_code(status_code), "message": message, "status": status_code, } if details is not None: payload["details"] = details return payload