# Generated by Django 5.2.6 on 2025-09-12 08:59 import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name="Profile", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "url", models.URLField( help_text="URL to the social.org file", unique=True ), ), ( "title", models.CharField( help_text="Title of the social feed", max_length=200 ), ), ( "nick", models.CharField( help_text="Nickname (no spaces allowed)", max_length=100 ), ), ( "description", models.TextField( blank=True, help_text="Short description about the profile" ), ), ( "avatar", models.URLField( blank=True, help_text="URL to avatar image (128x128px JPG/PNG)" ), ), ("last_updated", models.DateTimeField(auto_now=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ], options={ "ordering": ["-last_updated"], }, ), migrations.CreateModel( name="Post", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "post_id", models.CharField( help_text="Unique timestamp identifier (RFC 3339 format)", max_length=50, ), ), ("content", models.TextField(help_text="Post content")), ( "language", models.CharField( blank=True, help_text="Language code (LANG property)", max_length=10, ), ), ( "tags", models.CharField( blank=True, help_text="Space-separated tags", max_length=500 ), ), ( "client", models.CharField( blank=True, help_text="Client application used", max_length=100 ), ), ( "reply_to", models.CharField( blank=True, help_text="ID of post being replied to (URL#ID format)", max_length=300, ), ), ( "mood", models.CharField( blank=True, help_text="Mood indicator (emoji)", max_length=10 ), ), ( "poll_end", models.DateTimeField( blank=True, help_text="End time for polls", null=True ), ), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ( "profile", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="posts", to="feeds.profile", ), ), ], options={ "ordering": ["-created_at"], "unique_together": {("profile", "post_id")}, }, ), migrations.CreateModel( name="PollVote", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "poll_option", models.CharField(help_text="Selected poll option", max_length=200), ), ("created_at", models.DateTimeField(auto_now_add=True)), ( "poll_post", models.ForeignKey( help_text="The original poll post", on_delete=django.db.models.deletion.CASCADE, related_name="votes_received", to="feeds.post", ), ), ( "post", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="poll_votes", to="feeds.post", ), ), ], options={ "unique_together": {("post", "poll_post")}, }, ), migrations.CreateModel( name="PollOption", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("option_text", models.CharField(max_length=200)), ("order", models.PositiveIntegerField(default=0)), ( "post", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="poll_options", to="feeds.post", ), ), ], options={ "ordering": ["order"], "unique_together": {("post", "option_text")}, }, ), migrations.CreateModel( name="Follow", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "nickname", models.CharField( blank=True, help_text="Optional nickname for the followed profile", max_length=100, ), ), ("created_at", models.DateTimeField(auto_now_add=True)), ( "followed", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="followers", to="feeds.profile", ), ), ( "follower", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="following", to="feeds.profile", ), ), ], options={ "unique_together": {("follower", "followed")}, }, ), migrations.CreateModel( name="ProfileContact", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "contact_type", models.CharField( help_text="Type of contact (email, xmpp, matrix, etc.)", max_length=50, ), ), ( "contact_value", models.CharField(help_text="Contact information", max_length=200), ), ("created_at", models.DateTimeField(auto_now_add=True)), ( "profile", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="contacts", to="feeds.profile", ), ), ], options={ "unique_together": {("profile", "contact_type", "contact_value")}, }, ), migrations.CreateModel( name="ProfileLink", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("url", models.URLField()), ("created_at", models.DateTimeField(auto_now_add=True)), ( "profile", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="links", to="feeds.profile", ), ), ], options={ "unique_together": {("profile", "url")}, }, ), ]