sidequest_common.models.badges ============================== .. py:module:: sidequest_common.models.badges .. autoapi-nested-parse:: Earned Hall of Heroes badges. Badge definitions (id, name, description, icon, Discord role color) live in code (``sidequest_common.schemas.badges.BADGES``); this table only records who earned which one and when. Most badges are permanent once earned. ``top_helper`` is a moving monthly title: the service deletes/recreates this row for a new member instead of keeping history, so at most one ``top_helper`` row exists at a time. Rows are deleted with the member's account (``ondelete="CASCADE"``). Classes ------- .. autoapisummary:: sidequest_common.models.badges.MemberBadge Module Contents --------------- .. py:class:: MemberBadge Bases: :py:obj:`advanced_alchemy.base.UUIDAuditBase` One badge earned by one member. .. py:attribute:: announced_at :type: sqlalchemy.orm.Mapped[datetime.datetime | None] .. py:attribute:: badge_id :type: sqlalchemy.orm.Mapped[str] .. py:attribute:: earned_at :type: sqlalchemy.orm.Mapped[datetime.datetime] .. py:attribute:: member_id :type: sqlalchemy.orm.Mapped[int]