Description
An entity that is responsible for push notifications delivery.
After being set with a proper content, time schedule, and target audience, it can be activated in order to start the delivery process.
Structure
class MessageCampaignAbstract(SafeModelWithSignalSwitcher, WithArchivation):
owner = models.ForeignKey(
CustomUser, null=True, blank=True, on_delete=models.SET_NULL,
related_name='%(class)s_campaigns'
)
name = models.CharField(max_length=255, default='Unnamed', blank=True)
segment = models.ForeignKey(
Segment, null=True, blank=True, default=None, on_delete=models.SET_NULL,
related_name='%(class)s_campaigns'
)
supervised_segment = models.ForeignKey(
Segment, null=True, blank=True, default=None, on_delete=models.SET_NULL,
related_name='supervised_%(class)s_campaigns'
)
channel = models.ForeignKey(Channel, on_delete=models.SET_NULL, null=True, blank=True)
message_pool = models.ForeignKey(
MessagePool, null=True, blank=False, on_delete=models.SET_NULL,
related_name='%(class)s_message_campaigns'
)
pool_size_value = models.IntegerField(null=True, default=None, blank=True)
auto_content_management = models.NullBooleanField(default=None)
interval_updated = models.DateTimeField(null=True, blank=True, default=None)
timezone = models.CharField(null=True, blank=True, max_length=200)
created_date = models.DateTimeField(null=True, auto_now_add=True)
start_time = models.DateTimeField(null=True, blank=True, default=None)
is_active = models.NullBooleanField(default=False, null=True, blank=True)
is_draft = models.NullBooleanField(default=True, null=True, blank=True)
is_archive = models.BooleanField(default=False)
journey = models.ForeignKey(Journey, on_delete=models.SET_NULL, null=True, blank=True)
status = models.CharField(max_length=50, null=True, blank=True, choices=CampaignStatuses.choices())
iter_cycle = models.IntegerField(null=True, blank=True)
messages_per_user = models.IntegerField(null=True, blank=True)