@classmethod
def validate_number_field(cls, value, max_value=None, min_value=None, null=True
    ):
    """
        Validate number field value

        :type value: int | float
        :param value: integer value

        :type max_value: int
        :param max_value: max allow number value

        :type min_value: int
        :param min_value: min allow integer value

        :type null: bool
        :param null: is allow None value

        :rtype: dict
        :return: {'is_valid':bool, 'error_msg':str}
        """
    is_valid = True
    error_msg = None
    if null is False and value is None:
        is_valid = False
        error_msg = 'Property value should not be None'
    if value is not None:
        if isinstance(value, int) is False and isinstance(value, float
            ) is False:
            is_valid = False
            error_msg = 'Data type should be <int>'
        if max_value is not None and value > max_value:
            is_valid = False
            error_msg = 'Max allow value: {}'.format(max_value)
        if min_value is not None and value < min_value:
            is_valid = False
            error_msg = 'Min allow value: {}'.format(min_value)
    return {'is_valid': is_valid, 'error_msg': error_msg}
