# Generated by Django 4.1.3 on 2022-11-18 17:49 import functools import django.db.models.deletion import django.utils.timezone from django.db import migrations, models import activities.models.fan_out import activities.models.post import activities.models.post_attachment import activities.models.post_interaction import core.uploads import stator.models class Migration(migrations.Migration): initial = True dependencies = [ ("users", "0001_initial"), ] operations = [ migrations.CreateModel( name="Post", 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"), ("fanned_out", "fanned_out")], default="new", graph=activities.models.post.PostStates, max_length=100, ), ), ("local", models.BooleanField()), ( "object_uri", models.CharField( blank=True, max_length=500, null=True, unique=True ), ), ( "visibility", models.IntegerField( choices=[ (0, "Public"), (1, "Unlisted"), (2, "Followers"), (3, "Mentioned"), ], default=0, ), ), ("content", models.TextField()), ("sensitive", models.BooleanField(default=False)), ("summary", models.TextField(blank=True, null=True)), ("url", models.CharField(blank=True, max_length=500, null=True)), ( "in_reply_to", models.CharField(blank=True, max_length=500, null=True), ), ("hashtags", models.JSONField(blank=True, null=True)), ("published", models.DateTimeField(default=django.utils.timezone.now)), ("edited", models.DateTimeField(blank=True, null=True)), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ( "author", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name="posts", to="users.identity", ), ), ( "mentions", models.ManyToManyField( blank=True, related_name="posts_mentioning", to="users.identity" ), ), ( "to", models.ManyToManyField( blank=True, related_name="posts_to", to="users.identity" ), ), ], options={ "abstract": False, }, ), migrations.CreateModel( name="PostInteraction", 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"), ("fanned_out", "fanned_out"), ("undone", "undone"), ("undone_fanned_out", "undone_fanned_out"), ], default="new", graph=activities.models.post_interaction.PostInteractionStates, max_length=100, ), ), ( "object_uri", models.CharField( blank=True, max_length=500, null=True, unique=True ), ), ( "type", models.CharField( choices=[("like", "Like"), ("boost", "Boost")], max_length=100 ), ), ("published", models.DateTimeField(default=django.utils.timezone.now)), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ( "identity", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="interactions", to="users.identity", ), ), ( "post", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="interactions", to="activities.post", ), ), ], options={ "index_together": {("type", "identity", "post")}, }, ), migrations.CreateModel( name="PostAttachment", 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"), ("fetched", "fetched")], default="new", graph=activities.models.post_attachment.PostAttachmentStates, max_length=100, ), ), ("mimetype", models.CharField(max_length=200)), ( "file", models.FileField( blank=True, null=True, upload_to=functools.partial( core.uploads.upload_namer, *("attachments",), **{} ), ), ), ("remote_url", models.CharField(blank=True, max_length=500, null=True)), ("name", models.TextField(blank=True, null=True)), ("width", models.IntegerField(blank=True, null=True)), ("height", models.IntegerField(blank=True, null=True)), ("focal_x", models.IntegerField(blank=True, null=True)), ("focal_y", models.IntegerField(blank=True, null=True)), ("blurhash", models.TextField(blank=True, null=True)), ( "post", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="attachments", to="activities.post", ), ), ], options={ "abstract": False, }, ), migrations.CreateModel( name="FanOut", 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=activities.models.fan_out.FanOutStates, max_length=100, ), ), ( "type", models.CharField( choices=[ ("post", "Post"), ("interaction", "Interaction"), ("undo_interaction", "Undo Interaction"), ], max_length=100, ), ), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ( "identity", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="fan_outs", to="users.identity", ), ), ( "subject_post", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name="fan_outs", to="activities.post", ), ), ( "subject_post_interaction", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name="fan_outs", to="activities.postinteraction", ), ), ], options={ "abstract": False, }, ), migrations.CreateModel( name="TimelineEvent", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "type", models.CharField( choices=[ ("post", "Post"), ("boost", "Boost"), ("mentioned", "Mentioned"), ("liked", "Liked"), ("followed", "Followed"), ("boosted", "Boosted"), ], max_length=100, ), ), ("created", models.DateTimeField(auto_now_add=True)), ( "identity", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="timeline_events", to="users.identity", ), ), ( "subject_identity", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name="timeline_events_about_us", to="users.identity", ), ), ( "subject_post", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name="timeline_events", to="activities.post", ), ), ( "subject_post_interaction", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name="timeline_events", to="activities.postinteraction", ), ), ], options={ "index_together": { ("identity", "type", "subject_identity"), ("identity", "type", "subject_post", "subject_identity"), }, }, ), ]