# Generated by Django 4.1.3 on 2022-11-18 17:49 import functools import django.db.models.deletion from django.conf import settings from django.db import migrations, models import core.snowflake import core.uploads import stator.models import users.models.follow import users.models.identity import users.models.inbox_message import users.models.password_reset class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name="User", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("password", models.CharField(max_length=128, verbose_name="password")), ( "last_login", models.DateTimeField( blank=True, null=True, verbose_name="last login" ), ), ("email", models.EmailField(max_length=254, unique=True)), ("admin", models.BooleanField(default=False)), ("moderator", models.BooleanField(default=False)), ("banned", models.BooleanField(default=False)), ("deleted", models.BooleanField(default=False)), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ("last_seen", models.DateTimeField(auto_now_add=True)), ], options={ "abstract": False, }, ), migrations.CreateModel( name="Domain", fields=[ ( "domain", models.CharField(max_length=250, primary_key=True, serialize=False), ), ( "service_domain", models.CharField( blank=True, db_index=True, max_length=250, null=True, unique=True, ), ), ("local", models.BooleanField()), ("blocked", models.BooleanField(default=False)), ("public", models.BooleanField(default=False)), ("default", models.BooleanField(default=False)), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ( "users", models.ManyToManyField( blank=True, related_name="domains", to=settings.AUTH_USER_MODEL ), ), ], ), migrations.CreateModel( name="InboxMessage", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("state_ready", models.BooleanField(default=True)), ("state_changed", models.DateTimeField(auto_now_add=True)), ("state_attempted", models.DateTimeField(blank=True, null=True)), ("state_locked_until", models.DateTimeField(blank=True, null=True)), ("message", models.JSONField()), ( "state", stator.models.StateField( choices=[("received", "received"), ("processed", "processed")], default="received", graph=users.models.inbox_message.InboxMessageStates, max_length=100, ), ), ], options={ "abstract": False, }, ), migrations.CreateModel( name="Invite", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("token", models.CharField(max_length=500, unique=True)), ("email", models.EmailField(blank=True, max_length=254, null=True)), ("note", models.TextField(blank=True, null=True)), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ], ), migrations.CreateModel( name="UserEvent", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("date", models.DateTimeField(auto_now_add=True)), ( "type", models.CharField( choices=[ ("created", "Created"), ("reset_password", "Reset Password"), ("banned", "Banned"), ], max_length=100, ), ), ("data", models.JSONField(blank=True, null=True)), ( "user", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="events", to=settings.AUTH_USER_MODEL, ), ), ], ), migrations.CreateModel( name="PasswordReset", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("state_ready", models.BooleanField(default=True)), ("state_changed", models.DateTimeField(auto_now_add=True)), ("state_attempted", models.DateTimeField(blank=True, null=True)), ("state_locked_until", models.DateTimeField(blank=True, null=True)), ( "state", stator.models.StateField( choices=[("new", "new"), ("sent", "sent")], default="new", graph=users.models.password_reset.PasswordResetStates, max_length=100, ), ), ("token", models.CharField(max_length=500, unique=True)), ("new_account", models.BooleanField()), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ( "user", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="password_resets", to=settings.AUTH_USER_MODEL, ), ), ], options={ "abstract": False, }, ), migrations.CreateModel( name="Identity", fields=[ ( "id", models.BigIntegerField( default=core.snowflake.Snowflake.generate_identity, primary_key=True, serialize=False, ), ), ("state_ready", models.BooleanField(default=True)), ("state_changed", models.DateTimeField(auto_now_add=True)), ("state_attempted", models.DateTimeField(blank=True, null=True)), ("state_locked_until", models.DateTimeField(blank=True, null=True)), ("actor_uri", models.CharField(max_length=500, unique=True)), ( "state", stator.models.StateField( choices=[ ("outdated", "outdated"), ("updated", "updated"), ("edited", "edited"), ("deleted", "deleted"), ("deleted_fanned_out", "deleted_fanned_out"), ], default="outdated", graph=users.models.identity.IdentityStates, max_length=100, ), ), ("local", models.BooleanField()), ("username", models.CharField(blank=True, max_length=500, null=True)), ("name", models.CharField(blank=True, max_length=500, null=True)), ("summary", models.TextField(blank=True, null=True)), ( "manually_approves_followers", models.BooleanField(blank=True, null=True), ), ( "profile_uri", models.CharField(blank=True, max_length=500, null=True), ), ("inbox_uri", models.CharField(blank=True, max_length=500, null=True)), ("outbox_uri", models.CharField(blank=True, max_length=500, null=True)), ("icon_uri", models.CharField(blank=True, max_length=500, null=True)), ("image_uri", models.CharField(blank=True, max_length=500, null=True)), ( "icon", models.ImageField( blank=True, null=True, upload_to=functools.partial( core.uploads.upload_namer, *("profile_images",), **{} ), ), ), ( "image", models.ImageField( blank=True, null=True, upload_to=functools.partial( core.uploads.upload_namer, *("background_images",), **{} ), ), ), ("private_key", models.TextField(blank=True, null=True)), ("public_key", models.TextField(blank=True, null=True)), ("public_key_id", models.TextField(blank=True, null=True)), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ("fetched", models.DateTimeField(blank=True, null=True)), ("deleted", models.DateTimeField(blank=True, null=True)), ( "domain", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="identities", to="users.domain", ), ), ( "users", models.ManyToManyField( blank=True, related_name="identities", to=settings.AUTH_USER_MODEL, ), ), ], options={ "verbose_name_plural": "identities", "unique_together": {("username", "domain")}, }, ), migrations.CreateModel( name="Block", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("mute", models.BooleanField()), ("expires", models.DateTimeField(blank=True, null=True)), ("note", models.TextField(blank=True, null=True)), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ( "source", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="outbound_blocks", to="users.identity", ), ), ( "target", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="inbound_blocks", to="users.identity", ), ), ], ), migrations.CreateModel( name="Follow", fields=[ ( "id", models.BigIntegerField( default=core.snowflake.Snowflake.generate_follow, primary_key=True, serialize=False, ), ), ("state_ready", models.BooleanField(default=True)), ("state_changed", models.DateTimeField(auto_now_add=True)), ("state_attempted", models.DateTimeField(blank=True, null=True)), ("state_locked_until", models.DateTimeField(blank=True, null=True)), ("uri", models.CharField(blank=True, max_length=500, null=True)), ("note", models.TextField(blank=True, null=True)), ( "state", stator.models.StateField( choices=[ ("unrequested", "unrequested"), ("local_requested", "local_requested"), ("remote_requested", "remote_requested"), ("accepted", "accepted"), ("undone", "undone"), ("undone_remotely", "undone_remotely"), ], default="unrequested", graph=users.models.follow.FollowStates, max_length=100, ), ), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ( "source", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="outbound_follows", to="users.identity", ), ), ( "target", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="inbound_follows", to="users.identity", ), ), ], options={ "unique_together": {("source", "target")}, }, ), ]