"""CDEK order registration payload mappers.""" from typing import Any from app.schemas.order import OrderCreateRequest, OrderCreateResponse class CDEKOrderMappingError(ValueError): """Raised when CDEK order payload cannot be mapped.""" def map_cdek_order_request(request: OrderCreateRequest) -> dict[str, Any]: return request.model_dump(mode="python", exclude_none=True) def map_cdek_order_response(payload: dict[str, Any]) -> OrderCreateResponse: entity = payload.get("entity") if not isinstance(entity, dict): raise CDEKOrderMappingError("CDEK order response must include entity object.") order_uuid = entity.get("uuid") if not isinstance(order_uuid, str) or not order_uuid: raise CDEKOrderMappingError("CDEK order response must include entity.uuid.") return OrderCreateResponse(provider="cdek", order_uuid=order_uuid)