diff options
Diffstat (limited to 'api/models.py')
-rw-r--r-- | api/models.py | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/api/models.py b/api/models.py index 7f4175af..6d7af764 100644 --- a/api/models.py +++ b/api/models.py @@ -1,4 +1,4 @@ -from django.core.validators import RegexValidator +from django.core.validators import MaxValueValidator, MinValueValidator, RegexValidator from django.db import models @@ -23,3 +23,44 @@ class SnakeName(models.Model): name = models.CharField(primary_key=True, max_length=100) scientific = models.CharField(max_length=150) + + +class Role(models.Model): + """A role on our Discord server.""" + + id = models.BigIntegerField( + primary_key=True, + validators=( + MinValueValidator( + limit_value=0, + message="Role IDs cannot be negative." + ), + ), + help_text="The role's ID, taken from Discord." + ) + name = models.CharField( + max_length=100, + help_text="The role's name, taken from Discord." + ) + colour = models.IntegerField( + validators=( + MinValueValidator( + limit_value=0, + message="Colour hex cannot be negative." + ), + ), + help_text="The integer value of the colour of this role from Discord." + ) + permissions = models.IntegerField( + validators=( + MinValueValidator( + limit_value=0, + message="Role permissions cannot be negative." + ), + MaxValueValidator( + limit_value=2 << 32, + message="Role permission bitset exceeds value of having all permissions" + ) + ), + help_text="The integer value of the permission bitset of this role from Discord." + ) |