sidequest_common.schemas.levels#
Leveling schemas.
Attributes#
Ceiling for admin XP overrides (~level 1800); keeps the level calculation bounded and fits a BIGINT. |
Classes#
One leaderboard row. |
|
A page of the leaderboard, highest XP first. |
|
Role rewarded at a level. |
|
Body for |
|
Raw stored level row. |
|
A member's standing. |
|
Admin override of a member's XP total (level is recomputed). |
|
Outcome of |
Module Contents#
- class sidequest_common.schemas.levels.LeaderboardEntry#
Bases:
pydantic.BaseModelOne leaderboard row.
- level: int#
- message_count: int#
- rank: int#
- user_id: int#
- xp: int#
- class sidequest_common.schemas.levels.LeaderboardPage#
Bases:
pydantic.BaseModelA page of the leaderboard, highest XP first.
- entries: list[LeaderboardEntry]#
- limit: int#
- offset: int#
- total: int#
- class sidequest_common.schemas.levels.LevelRoleSchema#
Bases:
pydantic.BaseModelRole rewarded at a level.
- level: int#
- model_config#
- role_id: int#
- class sidequest_common.schemas.levels.LevelRoleUpsert#
Bases:
pydantic.BaseModelBody for
PUT /level-roles/{level}.- role_id: int#
- class sidequest_common.schemas.levels.MemberLevelSchema#
Bases:
pydantic.BaseModelRaw stored level row.
- guild_id: int#
- level: int#
- message_count: int#
- model_config#
- user_id: int#
- xp: int#
- class sidequest_common.schemas.levels.RankSchema#
Bases:
pydantic.BaseModelA member’s standing.
rankis 1-based position by XP, or None if they have no XP yet.- level: int#
- message_count: int#
- rank: int | None#
- user_id: int#
- xp: int#
- xp_for_next_level: int#
- xp_into_level: int#
- class sidequest_common.schemas.levels.SetXPRequest#
Bases:
pydantic.BaseModelAdmin override of a member’s XP total (level is recomputed).
- xp: int#
- class sidequest_common.schemas.levels.XPAwardResult#
Bases:
pydantic.BaseModelOutcome of
POST /members/{user_id}/xp(one chat message’s worth of XP).awardedis False while the member is on cooldown (or leveling is disabled); every other field then reflects the unchanged totals.earned_role_idsare level-role rewards for every level crossed by this award;remove_role_idsare lower level-roles to take away when the guild haslevel_roles_stack=False.- amount: int#
- awarded: bool#
- earned_role_ids: list[int]#
- level: int#
- leveled_up: bool#
- previous_level: int#
- remove_role_ids: list[int]#
- xp: int#
- sidequest_common.schemas.levels.MAX_XP = 10000000000#
Ceiling for admin XP overrides (~level 1800); keeps the level calculation bounded and fits a BIGINT.