from enum import IntEnum class DraftMessage: # Server INFORM_PHASE_CHANGE = "inform.phase.change" CONFIRM_PHASE_CHANGE = "confirm.phase.change" INFORM_PHASE = "inform.phase" # Client REQUEST_PHASE_CHANGE = "request.phase.change" REQUEST_INFORM_STATUS = "request.inform.status" # Waiting Phase ## Server INFORM_JOIN_USER = "inform.join.user" REQUEST_JOIN_PARTICIPANT = "request.join.participant" REQUEST_JOIN_ADMIN = "request.join.admin" INFORM_LEAVE_PARTICIPANT = "inform.leave.participant" ## Client NOTIFY_JOIN_USER = "notify.join.user" CONFIRM_JOIN_PARTICIPANT = "confirm.join.participant" REJECT_JOIN_PARTICIPANT = "reject.join.participant" CONFIRM_JOIN_ADMIN = "confirm.join.admin" # Determine Order ## Server CONFIRM_DETERMINE_DRAFT_ORDER = "confirm.determine.draft_order" ## Client REQUEST_DETERMINE_DRAFT_ORDER = "request.determine.draft_order" class DraftPhase(IntEnum): WAITING = 0 DETERMINE_ORDER = 10 NOMINATION = 20 BIDDING = 30 AWARD = 40 FINALIZE = 50 def __str__(self): return self.name.lower() class DraftGroupChannelNames: def __init__(self, id): self.prefix = f"draft.{id}" @property def session(self): return f"{self.prefix}.session" @property def admin(self): return f"{self.prefix}.admin" @property def participant(self): return f"{self.prefix}.participant"