from __future__ import annotations import enum class AudienceTarget(enum.StrEnum): ADS = "ADS" TEXT = "TEXT" EMAIL = "EMAIL" class AudienceExportJustification(enum.StrEnum): RETARGETING = "RETARGETING" CONTEST_WINNER_SELECTION = "CONTEST_WINNER_SELECTION" EVENT_RSVP_LIST = "EVENT_RSVP_LIST" LABEL_ARTIST_GIFT_TO_FANS = "LABEL_ARTIST_GIFT_TO_FANS" PARTNER_COLLABORATION = "PARTNER_COLLABORATION" SEND_TO_ARTIST_MANAGEMENT = "SEND_TO_ARTIST_MANAGEMENT" ARTIST_WEBSITE_USE = "ARTIST_WEBSITE_USE" DROPPED_ARTIST = "DROPPED_ARTIST" OTHER = "OTHER" class AudienceExportReason(enum.StrEnum): ADS_META = "ADS_META" ADS_TIKTOK = "ADS_TIKTOK" ADS_GOOGLE = "ADS_GOOGLE" ADS_SNAPCHAT = "ADS_SNAPCHAT" ADS_SPOTIFY = "ADS_SPOTIFY" TEXT_COMMUNITY = "TEXT_COMMUNITY" TEXT_LAYOUT = "TEXT_LAYOUT" TEXT_SUBTEXT = "TEXT_SUBTEXT" EMAIL_SALESFORCE = "EMAIL_SALESFORCE" @classmethod def choices(cls) -> list[AudienceExportReason]: return list(cls) @property def service_name(self) -> str: return self.value.split("_")[1] class AudienceExportFormat(enum.StrEnum): CSV = "CSV" class AudienceExportStatus(enum.StrEnum): PENDING = "PENDING" PROCESSING = "PROCESSING" FAILED = "FAILED" COMPLETED = "COMPLETED" DELETED = "DELETED" class AudienceSharePlatform(enum.StrEnum): META = "META" TIKTOK = "TIKTOK" GOOGLE = "GOOGLE"