Module apps.email_scheduler.migrations.0001_initial

Expand source code
# Generated by Django 3.1.5 on 2022-10-07 08:00

import django.contrib.postgres.fields
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):
    """
    This migration will create the EmailScheduler model
    """

    initial = True

    dependencies = []
    """
        operations list containing different Migration Model 
    """

    operations = [
        migrations.CreateModel(
            name='EmailScheduler',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('email_to', models.EmailField(max_length=254)),
                ('email_cc',
                 django.contrib.postgres.fields.ArrayField(
                     base_field=models.EmailField(max_length=254),
                     blank=True,
                     default=list,
                     help_text='list of comma separated email address in Cc',
                     size=None)),
                ('email_bcc',
                 django.contrib.postgres.fields.ArrayField(
                     base_field=models.EmailField(max_length=254),
                     blank=True,
                     default=list,
                     help_text='list of comma separated email address in Bcc',
                     size=None)),
                ('email_subject', models.CharField(max_length=256)),
                ('email_body', models.TextField()),
                ('email_schedule',
                 models.DateTimeField(blank=True,
                                      help_text='Schedule time to send email',
                                      null=True)),
                ('email_repeat_after',
                 models.DurationField(
                     blank=True,
                     help_text=
                     'Duration after which to resend email, You can remove it in future to stop the campaign and mark the task COMPLETE',
                     null=True)),
                ('email_service',
                 models.CharField(choices=[('mailjet', 'Mailjet')],
                                  default='mailjet',
                                  max_length=32)),
                ('email_last_sent_at',
                 models.DateTimeField(blank=True, null=True)),
                ('task_status',
                 models.CharField(
                     choices=[('pending', 'Pending'), ('complete', 'Complete'),
                              ('failed', 'Failed')],
                     default='pending',
                     help_text='Status of this email sending task',
                     max_length=128)),
                ('email_send_count',
                 models.IntegerField(
                     default=0,
                     help_text='Count of emails sent successfully')),
                ('task_failed_count',
                 models.IntegerField(
                     default=0,
                     help_text='Count of number of times this task failed')),
                ('task_failure_info',
                 django.contrib.postgres.fields.ArrayField(
                     base_field=models.JSONField(),
                     blank=True,
                     help_text=
                     'If task failed, information regarding why it failed',
                     null=True,
                     size=None)),
            ],
        ),
        migrations.CreateModel(
            name='EmailSchedulerLogs',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('email_recipient_id', models.EmailField(max_length=254)),
                ('email_message_id', models.TextField(blank=True, null=True)),
                ('email_send_status',
                 models.CharField(blank=True, max_length=128, null=True)),
                ('email_recipient_type',
                 models.CharField(choices=[('to', 'To'), ('cc', 'Cc'),
                                           ('bcc', 'Bcc')],
                                  max_length=8)),
                ('retry_count',
                 models.IntegerField(
                     default=0,
                     help_text='Number of times this email is being retried')),
                ('email_event_info', models.JSONField(blank=True, null=True)),
                ('email_scheduler',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='email_scheduler.emailscheduler')),
            ],
        ),
    ]

Classes

class Migration (name, app_label)

This migration will create the EmailScheduler model

Expand source code
class Migration(migrations.Migration):
    """
    This migration will create the EmailScheduler model
    """

    initial = True

    dependencies = []
    """
        operations list containing different Migration Model 
    """

    operations = [
        migrations.CreateModel(
            name='EmailScheduler',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('email_to', models.EmailField(max_length=254)),
                ('email_cc',
                 django.contrib.postgres.fields.ArrayField(
                     base_field=models.EmailField(max_length=254),
                     blank=True,
                     default=list,
                     help_text='list of comma separated email address in Cc',
                     size=None)),
                ('email_bcc',
                 django.contrib.postgres.fields.ArrayField(
                     base_field=models.EmailField(max_length=254),
                     blank=True,
                     default=list,
                     help_text='list of comma separated email address in Bcc',
                     size=None)),
                ('email_subject', models.CharField(max_length=256)),
                ('email_body', models.TextField()),
                ('email_schedule',
                 models.DateTimeField(blank=True,
                                      help_text='Schedule time to send email',
                                      null=True)),
                ('email_repeat_after',
                 models.DurationField(
                     blank=True,
                     help_text=
                     'Duration after which to resend email, You can remove it in future to stop the campaign and mark the task COMPLETE',
                     null=True)),
                ('email_service',
                 models.CharField(choices=[('mailjet', 'Mailjet')],
                                  default='mailjet',
                                  max_length=32)),
                ('email_last_sent_at',
                 models.DateTimeField(blank=True, null=True)),
                ('task_status',
                 models.CharField(
                     choices=[('pending', 'Pending'), ('complete', 'Complete'),
                              ('failed', 'Failed')],
                     default='pending',
                     help_text='Status of this email sending task',
                     max_length=128)),
                ('email_send_count',
                 models.IntegerField(
                     default=0,
                     help_text='Count of emails sent successfully')),
                ('task_failed_count',
                 models.IntegerField(
                     default=0,
                     help_text='Count of number of times this task failed')),
                ('task_failure_info',
                 django.contrib.postgres.fields.ArrayField(
                     base_field=models.JSONField(),
                     blank=True,
                     help_text=
                     'If task failed, information regarding why it failed',
                     null=True,
                     size=None)),
            ],
        ),
        migrations.CreateModel(
            name='EmailSchedulerLogs',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('email_recipient_id', models.EmailField(max_length=254)),
                ('email_message_id', models.TextField(blank=True, null=True)),
                ('email_send_status',
                 models.CharField(blank=True, max_length=128, null=True)),
                ('email_recipient_type',
                 models.CharField(choices=[('to', 'To'), ('cc', 'Cc'),
                                           ('bcc', 'Bcc')],
                                  max_length=8)),
                ('retry_count',
                 models.IntegerField(
                     default=0,
                     help_text='Number of times this email is being retried')),
                ('email_event_info', models.JSONField(blank=True, null=True)),
                ('email_scheduler',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='email_scheduler.emailscheduler')),
            ],
        ),
    ]

Ancestors

  • django.db.migrations.migration.Migration

Class variables

var dependencies

operations list containing different Migration Model

var initial
var operations