from .result import PaginationResult from .base import PostgresResponseSingle from pydantic import BaseModel from typing import Any class EndpointResponse(BaseModel): """Endpoint response model.""" completed: bool = True message: str = "Success" pagination_result: PaginationResult @property def response(self): """Convert response to dictionary format.""" result_data = getattr(self.pagination_result, "data", None) if not result_data: return { "completed": False, "message": "MSG0004-NODATA", "data": None, "pagination": None, } result_pagination = getattr(self.pagination_result, "pagination", None) if not result_pagination: raise ValueError("Invalid pagination result pagination.") pagination_dict = getattr(result_pagination, "as_dict", None) if not pagination_dict: raise ValueError("Invalid pagination result as_dict.") return { "completed": self.completed, "message": self.message, "data": result_data, "pagination": pagination_dict, } class CreateEndpointResponse(BaseModel): """Create endpoint response model.""" completed: bool = True message: str = "Success" data: PostgresResponseSingle @property def response(self): """Convert response to dictionary format.""" return { "completed": self.completed, "message": self.message, "data": self.data.data, }