# Generated by Django 5.2.16 on 2026-07-31 01:19 import django.db.models.deletion from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ("auth", "0012_alter_user_first_name_max_length"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="FeatureFlag", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("slug", models.SlugField(max_length=100)), ("name", models.CharField(max_length=200)), ("description", models.TextField(blank=True)), ("is_active", models.BooleanField(default=False)), ( "rollout_percentage", models.PositiveSmallIntegerField(default=100, help_text="0-100. 100 = all users"), ), ( "tenant_id", models.UUIDField(blank=True, help_text="Null = global. Value = tenant-specific", null=True), ), ("environments", models.JSONField(default=list, help_text='["production", "staging"] or [] = all')), ("category", models.CharField(blank=True, help_text="Grouping for UI", max_length=50)), ("metadata", models.JSONField(default=dict)), ], options={ "db_table": "features_flag", "unique_together": {("slug", "tenant_id")}, }, ), migrations.CreateModel( name="FeatureFlagOverride", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("is_enabled", models.BooleanField()), ( "flag", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="overrides", to="infrasynth_features.featureflag", ), ), ( "group", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name="+", to="auth.group", ), ), ( "user", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name="+", to=settings.AUTH_USER_MODEL, ), ), ], options={ "db_table": "features_override", "unique_together": {("flag", "group"), ("flag", "user")}, }, ), ]