class BuilderException(Exception):
    message = "Builder exception"

    def __init__(self, payload=None, message=None):
        self.payload = payload
        self.message = message if message else self.message

    def __str__(self):
        return self.message


class BuilderMissingDataException(BuilderException):
    message = "Payload contains missing data"


class BuilderDuplicateException(BuilderException):
    message = "Payload contains duplicate entry"


class BuilderParseException(BuilderException):
    message = "Failed to parse payload"


class BuilderSkippedException(BuilderException):
    message = "Payload does not meet filter criteria"
