# Generated by Django 4.2.11 on 2024-12-08 15:10 from django.conf import settings from django.db import migrations, models import django.db.models.deletion import uuid class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Prospect', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('email', models.EmailField(max_length=254, unique=True)), ('name', models.CharField(max_length=200)), ('region', models.CharField(max_length=100)), ('created_at', models.DateTimeField(auto_now_add=True)), ('users', models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='Status', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100, unique=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name='ProspectStatus', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True)), ('prospect', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='crm.prospect')), ('status', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='crm.status')), ], options={ 'ordering': ['-created_at'], }, ), migrations.CreateModel( name='Event', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateTimeField()), ('type', models.CharField(choices=[('MAIL', 'Mailing List'), ('SMS', 'SMS Campaign'), ('PRESS', 'Press Release')], max_length=10)), ('description', models.TextField()), ('attachment_text', models.TextField(blank=True)), ('status', models.CharField(choices=[('PLANNED', 'Planned'), ('ACTIVE', 'Active'), ('COMPLETED', 'Completed')], max_length=20)), ('created_at', models.DateTimeField(auto_now_add=True)), ('prospects', models.ManyToManyField(related_name='events', to='crm.prospect')), ], options={ 'ordering': ['-created_at'], }, ), migrations.CreateModel( name='EmailCampaign', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('subject', models.CharField(max_length=200)), ('content', models.TextField()), ('sent_at', models.DateTimeField(blank=True, null=True)), ('event', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='crm.event')), ], ), migrations.CreateModel( name='EmailTracker', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('tracking_id', models.UUIDField(default=uuid.uuid4, editable=False)), ('sent', models.BooleanField(default=False)), ('sent_at', models.DateTimeField(blank=True, null=True)), ('opened', models.BooleanField(default=False)), ('opened_at', models.DateTimeField(blank=True, null=True)), ('clicked', models.BooleanField(default=False)), ('clicked_at', models.DateTimeField(blank=True, null=True)), ('error_message', models.TextField(blank=True)), ('campaign', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='crm.emailcampaign')), ('prospect', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='crm.prospect')), ], options={ 'unique_together': {('campaign', 'prospect')}, }, ), ]