privaterelay/migrations/0010_move_profile_and_registered_subdomain_models.py (151 lines of code) (raw):
# Generated by Django 4.2.13 on 2024-06-07 22:27
# Move Profile and RegisteredSubdomain to privaterelay app
# Other half is
# emails/migrations/0062_move_profile_and_registered_subdomain_models.py
# See https://davit.hashnode.dev/django-move-model, solution #2
import uuid
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
from privaterelay.validators import valid_available_subdomain
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
("privaterelay", "0009_remove_duplicate_index"),
("emails", "0062_move_profile_and_registered_subdomain_models"),
]
state_operations = [
migrations.CreateModel(
name="RegisteredSubdomain",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"subdomain_hash",
models.CharField(db_index=True, max_length=64, unique=True),
),
("registered_at", models.DateTimeField(auto_now_add=True)),
],
options={
"db_table": "emails_registeredsubdomain",
},
),
migrations.CreateModel(
name="Profile",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("api_token", models.UUIDField(default=uuid.uuid4)),
("num_address_deleted", models.PositiveIntegerField(default=0)),
("date_subscribed", models.DateTimeField(blank=True, null=True)),
("date_subscribed_phone", models.DateTimeField(blank=True, null=True)),
(
"date_phone_subscription_checked",
models.DateTimeField(blank=True, null=True),
),
(
"date_phone_subscription_start",
models.DateTimeField(blank=True, null=True),
),
(
"date_phone_subscription_reset",
models.DateTimeField(blank=True, null=True),
),
(
"date_phone_subscription_end",
models.DateTimeField(blank=True, null=True),
),
(
"address_last_deleted",
models.DateTimeField(blank=True, db_index=True, null=True),
),
(
"last_soft_bounce",
models.DateTimeField(blank=True, db_index=True, null=True),
),
(
"last_hard_bounce",
models.DateTimeField(blank=True, db_index=True, null=True),
),
(
"last_account_flagged",
models.DateTimeField(blank=True, db_index=True, null=True),
),
("num_deleted_relay_addresses", models.PositiveIntegerField(default=0)),
(
"num_deleted_domain_addresses",
models.PositiveIntegerField(default=0),
),
(
"num_email_forwarded_in_deleted_address",
models.PositiveIntegerField(default=0),
),
(
"num_email_blocked_in_deleted_address",
models.PositiveIntegerField(default=0),
),
(
"num_level_one_trackers_blocked_in_deleted_address",
models.PositiveIntegerField(default=0, null=True),
),
(
"num_email_replied_in_deleted_address",
models.PositiveIntegerField(default=0),
),
(
"num_email_spam_in_deleted_address",
models.PositiveIntegerField(default=0),
),
(
"subdomain",
models.CharField(
blank=True,
db_index=True,
max_length=63,
null=True,
unique=True,
validators=[valid_available_subdomain],
),
),
("server_storage", models.BooleanField(default=True)),
("store_phone_log", models.BooleanField(default=True)),
(
"remove_level_one_email_trackers",
models.BooleanField(default=False, null=True),
),
("onboarding_state", models.PositiveIntegerField(default=0)),
("onboarding_free_state", models.PositiveIntegerField(default=0)),
("auto_block_spam", models.BooleanField(default=False)),
("forwarded_first_reply", models.BooleanField(default=False)),
("created_by", models.CharField(blank=True, max_length=63, null=True)),
("sent_welcome_email", models.BooleanField(default=False)),
(
"last_engagement",
models.DateTimeField(blank=True, db_index=True, null=True),
),
(
"user",
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
to=settings.AUTH_USER_MODEL,
),
),
],
options={
"db_table": "emails_profile",
},
),
]
operations = [
migrations.SeparateDatabaseAndState(state_operations=state_operations),
]