# Generated by Django 5.2.12 on 2026-03-11 09:14 import django.db.models.deletion import uuid from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="Workspace", fields=[ ( "id", models.UUIDField( default=uuid.uuid7, primary_key=True, serialize=False ), ), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ("deleted_at", models.DateTimeField(blank=True, null=True)), ("is_deleted", models.BooleanField(default=False)), ("is_active", models.BooleanField(default=False)), ("name", models.CharField(max_length=255)), ("description", models.TextField(blank=True)), ( "created_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="created_%(app_label)s_%(class)s_set", to=settings.AUTH_USER_MODEL, ), ), ( "owner", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name="owned_workspaces", to=settings.AUTH_USER_MODEL, ), ), ( "updated_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="updated_%(app_label)s_%(class)s_set", to=settings.AUTH_USER_MODEL, ), ), ], options={ "db_table": "workspace", "ordering": ("-updated_at", "-created_at"), }, ), migrations.CreateModel( name="WorkspaceMembership", fields=[ ( "id", models.UUIDField( default=uuid.uuid7, primary_key=True, serialize=False ), ), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ("deleted_at", models.DateTimeField(blank=True, null=True)), ("is_deleted", models.BooleanField(default=False)), ( "role", models.CharField( choices=[ ("owner", "Owner"), ("admin", "Admin"), ("member", "Member"), ("guest", "Guest"), ], default="member", max_length=20, ), ), ("is_active", models.BooleanField(default=True)), ("joined_at", models.DateTimeField(auto_now_add=True)), ( "created_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="created_%(app_label)s_%(class)s_set", to=settings.AUTH_USER_MODEL, ), ), ( "updated_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="updated_%(app_label)s_%(class)s_set", to=settings.AUTH_USER_MODEL, ), ), ( "user", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="workspace_memberships", to=settings.AUTH_USER_MODEL, ), ), ( "workspace", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="memberships", to="workspaces.workspace", ), ), ], options={ "db_table": "workspace_membership", "ordering": ("-created_at",), }, ), migrations.AddIndex( model_name="workspace", index=models.Index(fields=["owner"], name="workspace_owner_idx"), ), migrations.AddIndex( model_name="workspacemembership", index=models.Index(fields=["workspace"], name="membership_workspace_idx"), ), migrations.AddIndex( model_name="workspacemembership", index=models.Index(fields=["user"], name="membership_user_idx"), ), migrations.AddConstraint( model_name="workspacemembership", constraint=models.UniqueConstraint( condition=models.Q(("is_deleted", False)), fields=("workspace", "user"), name="unique_workspace_membership", ), ), ]