sidequest_common.schemas.gm =========================== .. py:module:: sidequest_common.schemas.gm .. autoapi-nested-parse:: GM console schemas: member management, moderation cases, and the merged activity log. See ``local://gm-console-contract.md``. Classes ------- .. autoapisummary:: sidequest_common.schemas.gm.GmCase sidequest_common.schemas.gm.GmCaseReasonUpdate sidequest_common.schemas.gm.GmMember sidequest_common.schemas.gm.GmMemberDetail sidequest_common.schemas.gm.GmSignup sidequest_common.schemas.gm.LogActor sidequest_common.schemas.gm.LogEntry sidequest_common.schemas.gm.LogPage sidequest_common.schemas.gm.RoleTag Module Contents --------------- .. py:class:: GmCase Bases: :py:obj:`pydantic.BaseModel` One moderation case, with Discord ids resolved to display names when known on the site. .. py:attribute:: action :type: str .. py:attribute:: case_number :type: int .. py:attribute:: created_at :type: datetime.datetime .. py:attribute:: duration_seconds :type: int | None .. py:attribute:: moderator_id :type: str .. py:attribute:: moderator_name :type: str | None .. py:attribute:: reason :type: str | None .. py:attribute:: user_id :type: str .. py:attribute:: user_name :type: str | None .. py:class:: GmCaseReasonUpdate Bases: :py:obj:`pydantic.BaseModel` Body for ``PATCH /api/gm/cases/{case_number}``. .. py:attribute:: reason :type: str .. py:class:: GmMember Bases: :py:obj:`pydantic.BaseModel` One member as shown in the GM console's member list/detail. .. py:attribute:: avatar_url :type: str | None .. py:attribute:: battlenet_linked_at :type: datetime.datetime | None .. py:attribute:: battletag :type: str | None .. py:attribute:: case_count :type: int .. py:attribute:: discord_id :type: str .. py:attribute:: display_name :type: str .. py:attribute:: first_seen_at :type: datetime.datetime .. py:attribute:: id :type: int .. py:attribute:: is_gm :type: bool .. py:attribute:: is_guild_member :type: bool .. py:attribute:: is_officer :type: bool .. py:attribute:: last_login_at :type: datetime.datetime | None .. py:attribute:: level :type: int | None .. py:attribute:: roles :type: list[RoleTag] .. py:attribute:: roster_confirmed_at :type: datetime.datetime | None .. py:attribute:: signup_count :type: int .. py:attribute:: username :type: str .. py:class:: GmMemberDetail Bases: :py:obj:`pydantic.BaseModel` A member's full GM console profile. .. py:attribute:: cases :type: list[GmCase] .. py:attribute:: member :type: GmMember .. py:attribute:: message_count :type: int | None .. py:attribute:: signups :type: list[GmSignup] .. py:attribute:: xp :type: int | None .. py:class:: GmSignup Bases: :py:obj:`pydantic.BaseModel` One of a member's event sign-ups, as shown on their GM console detail page. .. py:attribute:: character :type: str | None .. py:attribute:: comment :type: str | None .. py:attribute:: event_id :type: uuid.UUID .. py:attribute:: event_status :type: str .. py:attribute:: kind :type: str .. py:attribute:: model_config .. py:attribute:: role :type: str | None .. py:attribute:: starts_at :type: datetime.datetime .. py:attribute:: status :type: str .. py:attribute:: title :type: str .. py:attribute:: wow_class :type: str | None .. py:class:: LogActor Bases: :py:obj:`pydantic.BaseModel` Who performed a logged action, when known (officer-sourced entries only). .. py:attribute:: avatar_url :type: str | None .. py:attribute:: display_name :type: str .. py:class:: LogEntry Bases: :py:obj:`pydantic.BaseModel` One row of the GM console's unified activity log. .. py:attribute:: actor :type: LogActor | None .. py:attribute:: at :type: datetime.datetime .. py:attribute:: case_number :type: int | None .. py:attribute:: detail :type: str | None .. py:attribute:: event_id :type: uuid.UUID | None .. py:attribute:: id :type: str .. py:attribute:: kind :type: str .. py:attribute:: member_id :type: int | None .. py:attribute:: summary :type: str .. py:class:: LogPage Bases: :py:obj:`pydantic.BaseModel` A page of the activity log, newest first. .. py:attribute:: entries :type: list[LogEntry] .. py:attribute:: next_before :type: datetime.datetime | None .. py:class:: RoleTag Bases: :py:obj:`pydantic.BaseModel` A Discord role, as last reported by the bot's ``PUT /api/guilds/{guild_id}/roles``. .. py:attribute:: color :type: str | None .. py:attribute:: id :type: str .. py:attribute:: name :type: str