diff options
author | 2018-09-01 22:07:28 +0200 | |
---|---|---|
committer | 2018-09-01 22:10:23 +0200 | |
commit | 1f92f9c09ab6f56fd5d066f6ad457324f3251076 (patch) | |
tree | 2c416be1e09db33a1ffea2df4e467f64225df37d /api | |
parent | Add the `Role` model. (diff) |
Add the `Member` model.
Diffstat (limited to 'api')
-rw-r--r-- | api/migrations/0005_user.py | 38 | ||||
-rw-r--r-- | api/models.py | 44 |
2 files changed, 80 insertions, 2 deletions
diff --git a/api/migrations/0005_user.py b/api/migrations/0005_user.py new file mode 100644 index 00000000..a771119c --- /dev/null +++ b/api/migrations/0005_user.py @@ -0,0 +1,38 @@ +# Generated by Django 2.1 on 2018-09-01 20:02 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0004_role'), + ] + + operations = [ + migrations.CreateModel( + name='Member', + fields=[ + ('id', models.BigIntegerField(help_text='The ID of this user, taken from Discord.', primary_key=True, serialize=False, validators=[django.core.validators.MinValueValidator(limit_value=0, message='User IDs cannot be negative.')])), + ('name', models.CharField(help_text='The username, taken from Discord.', max_length=32)), + ('discriminator', models.PositiveSmallIntegerField(help_text='The discriminator of this user, taken from Discord.', validators=[django.core.validators.MaxValueValidator(limit_value=9999, message='Discriminators may not exceed `9999`.')])), + ('avatar_hash', models.CharField(help_text="The user's avatar hash, taken from Discord. Null if the user does not have any custom avatar.", max_length=100, null=True)), + ], + ), + migrations.AlterField( + model_name='role', + name='id', + field=models.BigIntegerField(help_text='The role ID, taken from Discord.', primary_key=True, serialize=False, validators=[django.core.validators.MinValueValidator(limit_value=0, message='Role IDs cannot be negative.')]), + ), + migrations.AlterField( + model_name='role', + name='name', + field=models.CharField(help_text='The role name, taken from Discord.', max_length=100), + ), + migrations.AddField( + model_name='member', + name='roles', + field=models.ManyToManyField(help_text='Any roles this user has on our server.', to='api.Role'), + ), + ] diff --git a/api/models.py b/api/models.py index 6d7af764..d3986ba5 100644 --- a/api/models.py +++ b/api/models.py @@ -36,11 +36,11 @@ class Role(models.Model): message="Role IDs cannot be negative." ), ), - help_text="The role's ID, taken from Discord." + help_text="The role ID, taken from Discord." ) name = models.CharField( max_length=100, - help_text="The role's name, taken from Discord." + help_text="The role name, taken from Discord." ) colour = models.IntegerField( validators=( @@ -64,3 +64,43 @@ class Role(models.Model): ), help_text="The integer value of the permission bitset of this role from Discord." ) + + +class Member(models.Model): + """A member of our Discord server.""" + + id = models.BigIntegerField( + primary_key=True, + validators=( + MinValueValidator( + limit_value=0, + message="User IDs cannot be negative." + ), + ), + help_text="The ID of this user, taken from Discord." + ) + name = models.CharField( + max_length=32, + help_text="The username, taken from Discord." + ) + discriminator = models.PositiveSmallIntegerField( + validators=( + MaxValueValidator( + limit_value=9999, + message="Discriminators may not exceed `9999`." + ), + ), + help_text="The discriminator of this user, taken from Discord." + ) + avatar_hash = models.CharField( + max_length=100, + help_text=( + "The user's avatar hash, taken from Discord. " + "Null if the user does not have any custom avatar." + ), + null=True + ) + roles = models.ManyToManyField( + Role, + help_text="Any roles this user has on our server." + ) |