aboutsummaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorGravatar Johannes Christ <[email protected]>2018-09-01 22:07:28 +0200
committerGravatar Johannes Christ <[email protected]>2018-09-01 22:10:23 +0200
commit1f92f9c09ab6f56fd5d066f6ad457324f3251076 (patch)
tree2c416be1e09db33a1ffea2df4e467f64225df37d /api
parentAdd the `Role` model. (diff)
Add the `Member` model.
Diffstat (limited to 'api')
-rw-r--r--api/migrations/0005_user.py38
-rw-r--r--api/models.py44
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."
+ )