aboutsummaryrefslogtreecommitdiffstats
path: root/backend/models
diff options
context:
space:
mode:
Diffstat (limited to 'backend/models')
-rw-r--r--backend/models/__init__.py5
-rw-r--r--backend/models/discord_user.py9
2 files changed, 13 insertions, 1 deletions
diff --git a/backend/models/__init__.py b/backend/models/__init__.py
index 8ad7f7f..a9f76e0 100644
--- a/backend/models/__init__.py
+++ b/backend/models/__init__.py
@@ -1,12 +1,15 @@
from .antispam import AntiSpam
-from .discord_user import DiscordUser
+from .discord_role import DiscordRole
+from .discord_user import DiscordMember, DiscordUser
from .form import Form, FormList
from .form_response import FormResponse, ResponseList
from .question import CodeQuestion, Question
__all__ = [
"AntiSpam",
+ "DiscordRole",
"DiscordUser",
+ "DiscordMember",
"Form",
"FormResponse",
"CodeQuestion",
diff --git a/backend/models/discord_user.py b/backend/models/discord_user.py
index 3f4209d..0eca15b 100644
--- a/backend/models/discord_user.py
+++ b/backend/models/discord_user.py
@@ -43,3 +43,12 @@ class DiscordMember(BaseModel):
pending: t.Optional[bool]
permissions: t.Optional[str]
communication_disabled_until: t.Optional[datetime.datetime]
+
+ def dict(self, *args, **kwargs) -> dict[str, t.Any]:
+ """Convert the model to a python dict, and encode timestamps in a serializable format."""
+ data = super().dict(*args, **kwargs)
+ for field, value in data.items():
+ if isinstance(value, datetime.datetime):
+ data[field] = value.isoformat()
+
+ return data