:return dict: This object serialized to a dict

def to_dict(self):
        """
        :return dict: This object serialized to a dict
        """
        result = {}
        for name in self.__dict__:
            if name.startswith("_"):
                continue

            key = name.replace("_", "-")
            attr = getattr(self, name)
            result[key] = attr.to_dict() if hasattr(attr, "to_dict") else attr

        return result