import type { ChannelRuntimeMode, ChannelRuntimeState } from "../rules.js"; export type ChannelMode = ChannelRuntimeMode; export type ChannelModesState = ChannelRuntimeState; const channelStates = new Map(); export function getChannelState(channelId: string): ChannelModesState { if (!channelStates.has(channelId)) { channelStates.set(channelId, { mode: "normal", shuffling: false, }); } return channelStates.get(channelId)!; } export function enterMultiMessageMode(channelId: string): void { const state = getChannelState(channelId); state.mode = "multi-message"; channelStates.set(channelId, state); } export function exitMultiMessageMode(channelId: string): void { const state = getChannelState(channelId); state.mode = "normal"; channelStates.set(channelId, state); } export function isMultiMessageMode(channelId: string): boolean { return getChannelState(channelId).mode === "multi-message"; } export function setChannelShuffling(channelId: string, enabled: boolean): void { const state = getChannelState(channelId); state.shuffling = enabled; channelStates.set(channelId, state); } export function getChannelShuffling(channelId: string): boolean { return getChannelState(channelId).shuffling; } export function markLastShuffled(channelId: string): void { const state = getChannelState(channelId); state.lastShuffledAt = Date.now(); channelStates.set(channelId, state); }