# Generated by Django 5.x for groups app 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="Group", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("name", models.CharField(db_index=True, max_length=256)), ("description", models.TextField(blank=True, default="")), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ("created_by", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="created_groups", to=settings.AUTH_USER_MODEL)), ], options={ "db_table": "groups_group", "verbose_name": "Group", "verbose_name_plural": "Groups", "ordering": ["-created_at"], }, ), migrations.CreateModel( name="GroupMember", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("role", models.CharField(choices=[("admin", "Admin"), ("member", "Member")], default="member", max_length=16)), ("joined_at", models.DateTimeField(auto_now_add=True)), ("group", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="memberships", to="groups.group")), ("user", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="group_memberships", to=settings.AUTH_USER_MODEL)), ], options={ "db_table": "groups_member", "verbose_name": "Group Member", "verbose_name_plural": "Group Members", "ordering": ["joined_at"], "unique_together": {("group", "user")}, }, ), migrations.CreateModel( name="GroupInvite", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("code", models.UUIDField(db_index=True, default=uuid.uuid4, editable=False, unique=True)), ("max_uses", models.PositiveIntegerField(default=0, help_text="0 = unlimited")), ("use_count", models.PositiveIntegerField(default=0)), ("is_active", models.BooleanField(db_index=True, default=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ("created_by", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="created_invites", to=settings.AUTH_USER_MODEL)), ("group", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="invites", to="groups.group")), ], options={ "db_table": "groups_invite", "verbose_name": "Group Invite", "verbose_name_plural": "Group Invites", "ordering": ["-created_at"], }, ), migrations.CreateModel( name="JoinRequest", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("status", models.CharField(choices=[("pending", "Pending"), ("approved", "Approved"), ("rejected", "Rejected")], db_index=True, default="pending", max_length=16)), ("created_at", models.DateTimeField(auto_now_add=True)), ("group", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="join_requests", to="groups.group")), ("invite", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="join_requests", to="groups.groupinvite")), ("user", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="join_requests", to=settings.AUTH_USER_MODEL)), ], options={ "db_table": "groups_join_request", "verbose_name": "Join Request", "verbose_name_plural": "Join Requests", "ordering": ["-created_at"], "unique_together": {("group", "user")}, }, ), ]