class deep_request:
    """
    This class is responsible for processing requests betwen 
    fastapi endpoints and apps.
    """

    def __init__(self, params: dict) -> None:
        """
        This create new request.
        
        Params:
            params (dict): Request dict from endpoint
        """

        self.__params = params.copy()

    @property
    def _params(self) -> dict:  
        """ This return params for child class. """

        return self.__params

    def __getattr__(self, key: str) -> None | str | int | float:
        """ 
        This trying to load key from request. When key could not being 
        found, then return None.

        Params:
            key (str): Key to load from request
        
        Returns:
            (None | str | int | float): Return key from request
        """

        if not key in self._params:
            return None
        
        return self._params[key]

