# Generated by Django 5.1 on 2025-10-06 13:38 import django.db.models.deletion import django.utils.timezone import uuid from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ('biz', '0007_prospectgroup_delete_campaign'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='EmailTemplate', fields=[ ('creation_date', models.DateTimeField(default=django.utils.timezone.now, editable=False)), ('last_update', models.DateTimeField(default=django.utils.timezone.now)), ('data_access_ids', models.JSONField(default=list)), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=100)), ('subject', models.CharField(max_length=200)), ('html_content', models.TextField(help_text='HTML content with image support')), ('text_content', models.TextField(blank=True, help_text='Plain text fallback', null=True)), ('last_updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), ('related_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='MailingList', fields=[ ('creation_date', models.DateTimeField(default=django.utils.timezone.now, editable=False)), ('last_update', models.DateTimeField(default=django.utils.timezone.now)), ('data_access_ids', models.JSONField(default=list)), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=100)), ('description', models.TextField(blank=True, null=True)), ('last_updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), ('related_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Campaign', fields=[ ('creation_date', models.DateTimeField(default=django.utils.timezone.now, editable=False)), ('last_update', models.DateTimeField(default=django.utils.timezone.now)), ('data_access_ids', models.JSONField(default=list)), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=100)), ('subject', models.CharField(max_length=200)), ('html_content', models.TextField(blank=True, null=True)), ('text_content', models.TextField(blank=True, null=True)), ('sent_at', models.DateTimeField(blank=True, null=True)), ('is_sent', models.BooleanField(default=False)), ('total_sent', models.IntegerField(default=0)), ('total_delivered', models.IntegerField(default=0)), ('total_opened', models.IntegerField(default=0)), ('total_clicked', models.IntegerField(default=0)), ('total_bounced', models.IntegerField(default=0)), ('last_updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), ('related_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), ('template', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='mailing.emailtemplate')), ('mailing_lists', models.ManyToManyField(related_name='campaigns', to='mailing.mailinglist')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Subscriber', fields=[ ('creation_date', models.DateTimeField(default=django.utils.timezone.now, editable=False)), ('last_update', models.DateTimeField(default=django.utils.timezone.now)), ('data_access_ids', models.JSONField(default=list)), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('email', models.EmailField(max_length=254)), ('first_name', models.CharField(blank=True, max_length=100, null=True)), ('last_name', models.CharField(blank=True, max_length=100, null=True)), ('is_active', models.BooleanField(default=True)), ('unsubscribe_token', models.UUIDField(default=uuid.uuid4, unique=True)), ('last_updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), ('mailing_lists', models.ManyToManyField(blank=True, related_name='subscribers', to='mailing.mailinglist')), ('prospect', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='biz.prospect')), ('related_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'unique_together': {('email',)}, }, ), migrations.CreateModel( name='EmailLog', fields=[ ('creation_date', models.DateTimeField(default=django.utils.timezone.now, editable=False)), ('last_update', models.DateTimeField(default=django.utils.timezone.now)), ('data_access_ids', models.JSONField(default=list)), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('tracking_id', models.UUIDField(default=uuid.uuid4, unique=True)), ('sent_at', models.DateTimeField(blank=True, null=True)), ('delivered_at', models.DateTimeField(blank=True, null=True)), ('opened_at', models.DateTimeField(blank=True, null=True)), ('clicked_at', models.DateTimeField(blank=True, null=True)), ('bounced_at', models.DateTimeField(blank=True, null=True)), ('error_message', models.TextField(blank=True, null=True)), ('campaign', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='email_logs', to='mailing.campaign')), ('last_updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), ('related_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), ('subscriber', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='email_logs', to='mailing.subscriber')), ], options={ 'unique_together': {('campaign', 'subscriber')}, }, ), ]