sidequest_common.schemas.members#

Signed-in member profile and officer member-list schemas.

Classes#

CalendarLink

The signed-in member's private calendar feed link (GET/POST /api/me/calendar).

Me

The signed-in member's profile, as returned by GET /api/me.

MemberListing

One row of the officers' member list (GET /api/members): who has signed in and what they've linked.

Module Contents#

Bases: pydantic.BaseModel

The signed-in member’s private calendar feed link (GET/POST /api/me/calendar).

url is the full https://.../api/calendar/{token}.ics address; rotating replaces token and invalidates the old link.

token: str#
url: str#
class sidequest_common.schemas.members.Me#

Bases: pydantic.BaseModel

The signed-in member’s profile, as returned by GET /api/me.

display_name is the guild nick, else the Discord global name, else the username. Discord ids are returned as strings because they’re 64-bit and JSON numbers aren’t safe past 2**53.

avatar_url: str | None#
battletag: str | None#
discord_id: str#
display_name: str#
id: int#
is_gm: bool#
is_guild_member: bool#
is_officer: bool#
model_config#
roster_confirmed: bool#
username: str#
class sidequest_common.schemas.members.MemberListing#

Bases: pydantic.BaseModel

One row of the officers’ member list (GET /api/members): who has signed in and what they’ve linked.

Officers compare battletag against the in-game guild roster; it is never shown outside officer views.

avatar_url: str | None#
battletag: str | None#
display_name: str#
id: int#
is_guild_member: bool#
is_officer: bool#
last_login_at: datetime.datetime | None#
roster_confirmed: bool#
username: str#