from fansifter_common.exceptions import FansifterError from email_campaigns.emails.types import EmailContentErrorSummary class EmailNotFoundError(FansifterError): code = "email_not_found" message = "Email not found" status_code = 404 class InvalidEmailDomainIdError(FansifterError): code = "invalid_email_domain_id" message = "Invalid email domain id" status_code = 400 class EmailContentMissingError(FansifterError): code = "email_missing_content" message = "Email content is missing" class EmailDomainMissingError(FansifterError): code = "email_missing_domain" message = "Email must have domain to perform this action" class EmailSenderEmailNotValidError(FansifterError): code = "email_sender_email_not_valid" message = "Email sender email is not valid" status_code = 400 class EmailPrivacyFooterMissingError(FansifterError): code = "email_privacy_footer_missing" message = "Email privacy footer is missing" status_code = 400 class EmailContentRequiredFieldsError(FansifterError): code = "email_content_required_fields" message = "Email content required fields are missing or invalid" status_code = 400 additional_properties = (("field_errors", EmailContentErrorSummary),) def __init__(self, field_errors: EmailContentErrorSummary) -> None: super().__init__() self.field_errors = field_errors class EmailOptInButtonMissingError(FansifterError): code = "email_opt_in_button_missing" message = "Email opt-in button is missing" status_code = 400 class EmailPublicPreviewTokenExpiredError(FansifterError): code = "email_public_preview_token_expired" message = "Email public preview link has expired" status_code = 404 class AutosaveUnauthorizedError(FansifterError): code = "unauthorized_autosave" message = "Autosave username or password is incorrect" status_code = 401 class EmailNoUnappliedChangesError(FansifterError): code = "email_no_unapplied_changes" message = "Email has no unapplied changes to apply" status_code = 409