1.9 KiB
1.9 KiB
Runtime View
Scenario: /sign-up join to Stage Queue
- User invokes
/sign-up join. - Command handler validates guild/context and required permissions.
- Tour schedule engine appends user to guild queue if not already present.
- Engine returns queue position and current queue snapshot.
- Bot replies ephemerally with confirmation and position.
- If configured, queue announcement message is sent to target channel.
Scenario: Advance Next Performer
- Moderator invokes
/sign-up next. - Tour schedule engine pops head of FIFO queue.
- If stage channel integration is enabled, bot resolves member and promotes stage speaker.
- Confirmation response includes promoted user and remaining queue length.
- Optional announcement is sent to configured channel.
Scenario: Mileage Award on Interaction
- Discord interaction event reaches runtime handler.
- Bot resolves guild/member context and chooses mileage event type.
- Mileage engine calculates points from configured event map.
- Transaction persists event row and upserts total user mileage.
- Role-tier thresholds are evaluated and missing roles are granted.
- Runtime stores an engagement snapshot in configuration DB for dashboard consumption.
Scenario: Dashboard OAuth Connect
- Browser redirects user to Discord OAuth authorize URL.
- Dashboard callback receives authorization code.
- Dashboard posts code to
POST /admin/oauth/discord/exchange. - OAuth bridge exchanges code for Discord token, fetches user, creates local session.
- API returns
sessionId; dashboard fetches session details from/admin/oauth/session/:sessionId. - Optional backend sync call propagates session to openmicodyssey.com.
Scenario: Graceful Shutdown
- Process receives SIGINT/SIGTERM.
- Runtime stops HTTP server and Discord client.
- Service tear-down closes DB pools and cancels dailies intervals.
- Process exits with clean status after shutdown promises resolve.