diff options
| -rw-r--r-- | generalresearch/gr_django/migrations/0003_user_email_alter_membership_privilege_and_more.py | 27 | ||||
| -rw-r--r-- | generalresearch/gr_django/models.py | 13 |
2 files changed, 38 insertions, 2 deletions
diff --git a/generalresearch/gr_django/migrations/0003_user_email_alter_membership_privilege_and_more.py b/generalresearch/gr_django/migrations/0003_user_email_alter_membership_privilege_and_more.py new file mode 100644 index 0000000..c072b1a --- /dev/null +++ b/generalresearch/gr_django/migrations/0003_user_email_alter_membership_privilege_and_more.py @@ -0,0 +1,27 @@ +# Generated by Django 6.1.1 on 2026-10-16 18:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('common', '0002_business_balance_business_balance_net_7d_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='email', + field=models.EmailField(max_length=254, null=True, unique=True), + ), + migrations.AlterField( + model_name='membership', + name='privilege', + field=models.PositiveSmallIntegerField(choices=[(0, 'Admin'), (1, 'Member')], default=1), + ), + migrations.AddConstraint( + model_name='membership', + constraint=models.UniqueConstraint(fields=('user_id', 'team_id'), name='uniq_membership_user_team'), + ), + ] diff --git a/generalresearch/gr_django/models.py b/generalresearch/gr_django/models.py index 01bf749..8b2d91d 100644 --- a/generalresearch/gr_django/models.py +++ b/generalresearch/gr_django/models.py @@ -6,6 +6,7 @@ from django.db import models class User(models.Model): id = models.BigAutoField(primary_key=True) sub = models.CharField(max_length=200, blank=False, null=False) + email = models.EmailField(null=True, unique=True) is_superuser = models.BooleanField(default=False) date_joined = models.DateTimeField(auto_now_add=True) @@ -37,14 +38,22 @@ class Membership(models.Model): PRIVILEGES = ( (0, "Admin"), - (1, "Maintain"), - (2, "Read"), + (1, "Member"), ) privilege = models.PositiveSmallIntegerField(default=1, choices=PRIVILEGES) + + # todo: delete this field once managers are not querying for it owner = models.BooleanField(default=False) created = models.DateTimeField(auto_now_add=True, null=False) + class Meta: + constraints = [ + models.UniqueConstraint( + fields=['user_id', 'team_id'], + name='uniq_membership_user_team' + ) + ] class Team(models.Model): """ |
