add models.py

This commit is contained in:
Leander Furumo committed 2024-04-20 13:43:24 +02:00
1 parent b537a9fd30
commit f20612cc52
2 files changed
+79

No files matched your search

+1
View File
@@ -2,6 +2,7 @@ asyncio==3.4.*
asyncpg==0.29.*
discord.py==2.3.*
psutil==5.9.*
pydantic==2.7.*
pypandoc==1.13.*
python-dotenv==1.0.*
regex==2023.12.25
+78
View File
@@ -0,0 +1,78 @@
from datetime import datetime
from typing import Optional
from pydantic import BaseModel
from pydantic import Field
class GroupDiscordRole(BaseModel):
id: int
discord_id: int
description: str
class GroupProfile(BaseModel):
id: int
posix_name: str
description: str
group_type: str = Field(alias="type")
discord_roles: list[GroupDiscordRole]
class Group(BaseModel):
id: int
name: str
profile: GroupProfile
class Membership(BaseModel):
id: int
start_date: datetime
end_date: datetime
order: int
user: int
membership_type: str
is_valid: bool
class UserDiscordProfile(BaseModel):
id: int
discord_id: int
user: int
class DuskenUser(BaseModel):
id: int
username: str
email: str
first_name: str
last_name: str
phone_number: str
date_of_birth: Optional[datetime]
legacy_id: Optional[int]
place_of_study: Optional[int]
active_member_card: Optional[int]
is_volunteer: bool
is_member: bool
last_membership: Optional[Membership]
groups: list[Group]
discord_profile: Optional[UserDiscordProfile]
class BasicResponse(BaseModel):
count: int
next: Optional[str]
previous: Optional[str]
results: list
class Users(BasicResponse):
results: list[DuskenUser]
class DiscordProfiles(BasicResponse):
results: list[UserDiscordProfile]
class Groups(BasicResponse):
results: list[Group]