diff options
author | 2018-11-18 21:03:06 +0100 | |
---|---|---|
committer | 2018-11-18 21:03:06 +0100 | |
commit | 9e9fde3fa4a159e3883760c5ca9fe51b4d6593de (patch) | |
tree | 952b0ae3c51a884aaeb32672b9a6bfd68caafb1d /api | |
parent | Set up markdown & Dockerfile lints. (diff) |
Add the abstract `Message` model.
Diffstat (limited to 'api')
-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 |