"""Énumérations du domaine. Stockées en base comme VARCHAR + contrainte CHECK (`native_enum=False`) : pas de type ENUM natif PostgreSQL, donc pas de migration de type à gérer. """ import enum class Role(enum.StrEnum): COORDINATOR = "COORDINATOR" LEAD = "LEAD" VOLUNTEER = "VOLUNTEER" class AssignmentSource(enum.StrEnum): SOLVER = "SOLVER" MANUAL = "MANUAL" class PositionCategory(enum.StrEnum): BAR = "BAR" TICKETING = "TICKETING" WELCOME = "WELCOME" PARKING = "PARKING" CLEANING = "CLEANING" CATERING = "CATERING" SETUP = "SETUP" STAGE = "STAGE" OTHER = "OTHER" class BadgeFieldType(enum.StrEnum): """Champ affichable sur le recto d'un badge (voir `app/badges/`).""" FULL_NAME = "FULL_NAME" POSITIONS = "POSITIONS" CATEGORY = "CATEGORY" ROLE = "ROLE" # Photo du bénévole (`Volunteer.photo`), ajustée au cadre du champ. PHOTO = "PHOTO" # Texte libre saisi par la coordination dans l'éditeur (`BadgeField.text`, # commun à tous les badges), remplacé pour un bénévole par le « Texte du # badge » de sa fiche (`Volunteer.badge_text`) s'il en a un. FREE_TEXT = "FREE_TEXT" class BadgeAlign(enum.StrEnum): LEFT = "LEFT" CENTER = "CENTER" RIGHT = "RIGHT" class FeePaymentStatus(enum.StrEnum): """Statut d'un paiement de cotisation via l'API SumUp (voir `app/sumup/` et `app/api/forms.py`). Reprend tel quel le statut d'un checkout SumUp — `NULL` sur `Volunteer.fee_payment_status` tant qu'aucun checkout n'a jamais été créé pour ce bénévole.""" PENDING = "PENDING" PAID = "PAID" FAILED = "FAILED" EXPIRED = "EXPIRED" class FormFieldType(enum.StrEnum): """Champ activable sur le formulaire public d'inscription (voir `app/api/forms.py`). Nom/prénom sont toujours collectés, pas au choix de la coordination — ils sont indispensables à la création du bénévole.""" EMAIL = "EMAIL" PHONE = "PHONE" POSITION_WISHES = "POSITION_WISHES" ARTIST_WISHES = "ARTIST_WISHES" COMPANION_WISH = "COMPANION_WISH" AVAILABLE = "AVAILABLE" WILLING_TO_PAY_FEE = "WILLING_TO_PAY_FEE" PHOTO = "PHOTO" COMMENT = "COMMENT"