diff options
| author | 2018-11-18 21:03:06 +0100 | |
|---|---|---|
| committer | 2018-11-18 21:03:06 +0100 | |
| commit | 9e9fde3fa4a159e3883760c5ca9fe51b4d6593de (patch) | |
| tree | 952b0ae3c51a884aaeb32672b9a6bfd68caafb1d | |
| parent | Set up markdown & Dockerfile lints. (diff) | |
Add the abstract `Message` model.
Diffstat (limited to '')
| -rw-r--r-- | api/models.py | 31 | ||||
| -rw-r--r-- | api/tests/test_models.py | 12 | 
2 files changed, 42 insertions, 1 deletions
| diff --git a/api/models.py b/api/models.py index 9990e266..3ba0ac5c 100644 --- a/api/models.py +++ b/api/models.py @@ -210,6 +210,37 @@ class Member(ModelReprMixin, models.Model):          return f"{self.name}#{self.discriminator}" +class Message(ModelReprMixin, models.Model): +    id = models.BigIntegerField( +        primary_key=True, +        help_text="The message ID as taken from Discord.", +        validators=( +            MinValueValidator( +                limit_value=0, +                message="Message IDs cannot be negative." +            ), +        ) +    ) +    author = models.ForeignKey( +        Member, +        on_delete=models.CASCADE, +        help_text="The author of this message." +    ) +    content = models.CharField( +        max_length=2_000, +        help_text="The content of this message, taken from Discord." +    ) +    embeds = pgfields.ArrayField( +        pgfields.JSONField( +            validators=(validate_tag_embed,) +        ), +        help_text="Embeds attached to this message." +    ) + +    class Meta: +        abstract = True + +  class Tag(ModelReprMixin, models.Model):      """A tag providing (hopefully) useful information.""" diff --git a/api/tests/test_models.py b/api/tests/test_models.py index 91db2def..1e4af806 100644 --- a/api/tests/test_models.py +++ b/api/tests/test_models.py @@ -1,7 +1,8 @@  from django.test import SimpleTestCase  from ..models import ( -    DocumentationLink, Member, ModelReprMixin, +    DocumentationLink, Member, +    Message, ModelReprMixin,      OffTopicChannelName, Role,      SnakeFact, SnakeIdiom,      SnakeName, SpecialSnake, @@ -41,6 +42,15 @@ class StringDunderMethodTests(SimpleTestCase):                  id=5, name='test role',                  colour=0x5, permissions=0              ), +            Message( +                id=45, +                author=Member( +                    id=444, name='bill', +                    discriminator=5, avatar_hash=None +                ), +                content="wooey", +                embeds=[] +            ),              Member(                  id=5, name='bob',                  discriminator=1, avatar_hash=None | 
