from fansifter_common.exceptions import FansifterError, ObjectNotFoundError from email_campaigns.campaigns.types import EmailCampaignErrorSummary class EmailCampaignNotFoundError(ObjectNotFoundError): code = "email_campaign_not_found" message = "Email campaign not found" class EmailCampaignUniqueNameError(FansifterError): code = "email_campaign_unique_name" message = "Email campaign with this name already exists" status_code = 400 class EmailCampaignMustBeDraftError(FansifterError): code = "email_campaign_must_be_draft" message = "Email campaign must be in draft status to perform this action" status_code = 400 class EmailCampaignMustBeScheduledError(FansifterError): code = "email_campaign_must_be_scheduled" message = "Email campaign must be in scheduled status to perform this action" status_code = 400 class CampaignAlreadyQueuedError(FansifterError): code = "campaign_already_queued" message = "Campaign is already queued" status_code = 400 class MalformedEmailCampaignError(FansifterError): code = "malformed_email_campaign" message = "Malformed email campaign" class EmailCampaignSendAtMustBeFutureError(FansifterError): code = "email_campaign_send_at_must_be_future" message = "Email campaign send at must be in the future" status_code = 400 class EmailCampaignRequiredFieldsError(FansifterError): code = "email_campaign_required_fields" message = "Email campaign required fields are missing or invalid" status_code = 400 additional_properties = (("field_errors", EmailCampaignErrorSummary),) def __init__(self, field_errors: EmailCampaignErrorSummary) -> None: super().__init__() self.field_errors = field_errors class EmailCampaignAlreadySentError(FansifterError): code = "email_campaign_already_sent" message = "Email campaign already sent" status_code = 400 class EmailCampaignSenderEmailNotValidError(FansifterError): code = "email_campaign_sender_email_not_valid" message = "Email campaign sender email is not valid" status_code = 400 class EmailCampaignScheduleNotFoundError(ObjectNotFoundError): code = "email_campaign_schedule_not_found" message = "Email campaign schedule not found"