sidequest_common.schemas.heroes#
Hall of Heroes: a members-only, raider.io-style leaderboard and per-member profile.
Attendance for raids/events/EP/attendance-rate is defined once, in sidequest_api.lib.attendance.attended_condition
(a SQLAlchemy condition over EventSignup joined to GuildEvent); every stat here is derived from it rather
than from a separate “attended” concept.
SEASONS is the only thing to touch to add a season: append one more entry with a starts_at after the
previous season’s ends_at (None means “still running”).
Attributes#
Ordered oldest-first. The last entry's |
Classes#
|
|
|
|
One recent event a member attended, for the profile's recent-events list. |
|
One leaderboard row. |
|
One member's stats for one season (or all time). |
|
One competitive season. Open-ended ( |
Module Contents#
- class sidequest_common.schemas.heroes.HeroLeaderboard#
Bases:
pydantic.BaseModelGET /api/heroes.- season_id: str#
- season_name: str#
- class sidequest_common.schemas.heroes.HeroProfile#
Bases:
pydantic.BaseModelGET /api/heroes/{member_id}.- all_time: HeroSeasonStats#
- avatar_url: str | None#
- badges: list[sidequest_common.schemas.badges.EarnedBadge]#
- chat_level: int#
- chat_xp: int#
- chat_xp_for_next_level: int#
- chat_xp_into_level: int#
- discord_id: str#
- display_name: str#
- first_event_date: datetime.date | None#
- member_id: int#
- rank: int | None#
- recent_events: list[HeroRecentEvent]#
- seasons: dict[str, HeroSeasonStats]#
- wow_class: sidequest_common.schemas.events.WowClass | None#
- class sidequest_common.schemas.heroes.HeroRecentEvent#
Bases:
pydantic.BaseModelOne recent event a member attended, for the profile’s recent-events list.
- ep: int#
- id: uuid.UUID#
- model_config#
- starts_at: datetime.datetime#
- title: str#
- class sidequest_common.schemas.heroes.HeroRow#
Bases:
pydantic.BaseModelOne leaderboard row.
- avatar_url: str | None#
- badge_ids: list[str]#
- chat_level: int#
- discord_id: str#
- display_name: str#
- ep: int#
- events_attended: int#
- member_id: int#
- raids_attended: int#
- rank: int | None#
- wow_class: sidequest_common.schemas.events.WowClass | None#
- class sidequest_common.schemas.heroes.HeroSeasonStats#
Bases:
pydantic.BaseModelOne member’s stats for one season (or all time).
- attendance_rate: float#
- ep: int#
- events_attended: int#
- raids_attended: int#