diff --git a/users/migrations/0016_user_api_access_tier.py b/users/migrations/0016_user_api_access_tier.py new file mode 100644 index 000000000..3d49c475c --- /dev/null +++ b/users/migrations/0016_user_api_access_tier.py @@ -0,0 +1,27 @@ +# Generated by Django 5.1.13 on 2025-12-06 21:52 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("users", "0015_user_metadata"), + ] + + operations = [ + migrations.AddField( + model_name="user", + name="api_access_tier", + field=models.CharField( + choices=[ + ("free", "Free"), + ("pro", "Pro"), + ("enterprise", "Enterprise"), + ], + default="free", + max_length=32, + help_text="Indicates the API access tier for the user.", + ), + ), + ] diff --git a/users/models.py b/users/models.py index dbe177f49..e80cc1552 100644 --- a/users/models.py +++ b/users/models.py @@ -101,6 +101,18 @@ class InterfaceType(models.TextChoices): choices=settings.LANGUAGES, ) + class ApiAccessTier(models.TextChoices): + FREE = "free", "Free" + PRO = "pro", "Pro" + ENTERPRISE = "enterprise", "Enterprise" + + api_access_tier = models.CharField( + max_length=32, + choices=ApiAccessTier.choices, + default=ApiAccessTier.FREE, + help_text="Indicates the API access tier for the user.", + ) + # Metadata - to update the intended use of this field, update description in Admin metadata = models.JSONField( null=True, diff --git a/users/serializers.py b/users/serializers.py index 4ad8e6180..b17b95292 100644 --- a/users/serializers.py +++ b/users/serializers.py @@ -100,6 +100,7 @@ class Meta: "app_theme", "interface_type", "language", + "api_access_tier", ) def get_registered_campaigns(self, user: User):