from anydi import singleton from fansifter_common.auth.types import Permission from email_campaigns.campaigns.enums import EmailCampaignStatus from email_campaigns.campaigns.exceptions import EmailCampaignAlreadySentError from email_campaigns.campaigns.models import EmailCampaign from email_campaigns.emails.handlers.update_email_fonts import UpdateEmailFontsHandler @singleton class UpdateCampaignFontsHandler(UpdateEmailFontsHandler[EmailCampaign]): permission = Permission("email_campaign", "edit") def _check_can_update_fonts(self, email: EmailCampaign) -> None: if email.status == EmailCampaignStatus.SENT: raise EmailCampaignAlreadySentError