/** Threshold multipliers defining big win categories. */
export const WINS_THRESHOLD = {
    BIG: 20,
    MEGA: 40,
    SUPER: 60,
} as const;

export type WinThresholdName = keyof typeof WINS_THRESHOLD;

/** Mapping of logical scene identifiers to runtime keys. */
export const SCENES = {
    PRELOADER: 'preloader',
    START_SCENE: 'startScreen',
    START_SCENE_UI: 'startScreenUI',
    GAME_UI: 'gameUI',
    MAIN_GAME_SCENE: 'mainGameScene',
    RESPINS_GAME_SCENE: 'respinsGameScene',
    FREESPINS_GAME_SCENE: 'freeGameScene',
    BIG_WINS_POPUP: 'bigWinsPopup',
    TOTAL_WIN_POPUP: 'totalWinPopup',
    MAX_WIN_POPUP: 'maxWinPopup',
    BUY_BONUS_SCENE: 'buyBonusScene',
    RESPINS_GAME_WON_POPUP: 'respinsGameWinPopup',
    FREESPINS_GAME_WON_POPUP: 'freespinsGameWinPopup',
    RESPINS_LEFT_POPUP: 'respinsLeftPopup',
    FREESPINS_LEFT_POPUP: 'freespinsLeftPopup',
    TRANSITION: 'transition',
    RULES: 'rules',
    MINI_PAYTABLES: 'miniPaytables',
    PAYTABLE: 'paytable',
} as const;

export type SceneName = typeof SCENES[keyof typeof SCENES];

/** Default Pixi renderer and viewport configuration. */
export const SETTINGS = {
    viewport: {
        width: 1024,
        height: 460,
    },
    renderer: {
        width: 1024,
        height: 460,
        backgroundColor: 0x000000,
        resolution: 2,
        antialias: false,
    },
} as const;

/** Life time for cached backend responses in milliseconds. */
export const LAST_RESPONSE_LIFE_TIME = 4 * 60 * 60 * 1000;

/** Interval for sending heartbeat requests in milliseconds. */
export const HEART_BEATING_INTERVAL = 31 * 1000;
