Description

This event is emitted when a subscription is created or deleted. It always contains additional data about subscriber (e.g. city, browser, operating system, subscription age, etc.)

The only difference is that the subscribe_count will be 1 for a new subscription and unsubscribe_count will be 1 for a deleted subscription.

class SubscriptionEvent(BaseKafkaModel):
    _topic = 'subscription_events'
 
    def __init__(self, channel_id: int, subscriber_id: int, timestamp: int = None,
                 message_example_id: int = None, user_country: str = None,
                 user_browser: str = None, user_browser_language: str = None,
                 campaign_id: int = None, active_campaigns: List[int] = None,
                 subscribe_count: int = None, unsubscribe_count: int = None, 
                 window_id: int = None, window_pool_id: int = None, firebase_app: str = None, 
                 owner_id: int = None, firebase_id: int = None, subscriber_age: int = None, **kwargs):
        super(SubscriptionEvent, self).__init__(**kwargs)
        self.channel_id = channel_id
        self.subscriber_id = subscriber_id
        self.unsubscribe_count = unsubscribe_count or 0
        self.subscribe_count = subscribe_count or 0
        self.active_campaigns = active_campaigns or []
        self.campaign_id = campaign_id or 0
        self.user_browser_language = user_browser_language or ''
        self.user_browser = user_browser or ''
        self.user_country = user_country or ''
        self.message_example_id = message_example_id or 0
        self.timestamp = timestamp or int(time.time())
        self.window_id = window_id or 0
        self.window_pool_id = window_pool_id or 0
        self.firebase_app = firebase_app or ''
        self.owner_id = owner_id or 0
        self.firebase_id = firebase_id or 0
        self.subscriber_age = subscriber_age or 0