<?php
/**
 * API 鉴权与用户相关配置
 */
return [
    // 登录成功返回的连接地址前缀，如 https://127.0.0.1:6777
    'login_url_base' => env('API_LOGIN_URL_BASE', 'https://127.0.0.1:6777'),
    // 游戏地址，用于 /api/v1/getGameUrl 返回拼接 token
    'game_url' => env('GAME_URL', 'dice-v3-game.h55555game.top'),
    // 按 username 存储的登录会话 Redis key 前缀，用于 token 中间件校验
    'session_username_prefix' => env('API_SESSION_USERNAME_PREFIX', 'api:user:session:'),
    // 登录会话过期时间（秒），默认 7 天
    'session_expire' => (int) env('API_SESSION_EXPIRE', 604800),
    // 平台对接请求头 api-key（/api/v1/* 必填，与客户端请求头 api-key 一致）
    'platform_api_key' => env('API_KEY', ''),
    // auth-token 签名密钥（与客户端约定，用于 /api/authToken 的 signature 校验，必填）
    'auth_token_secret' => env('API_AUTH_TOKEN_SECRET', ''),
    // auth-token 时间戳允许误差（秒），防重放，默认 300 秒
    'auth_token_time_tolerance' => (int) env('API_AUTH_TOKEN_TIME_TOLERANCE', 300),
    // auth-token 有效期（秒），默认 24 小时
    'auth_token_exp' => (int) env('API_AUTH_TOKEN_EXP', 86400),
    // auth-token 按设备存储的 Redis key 前缀（同一设备只保留最新一个 auth-token）
    'auth_token_device_prefix' => env('API_AUTH_TOKEN_DEVICE_PREFIX', 'api:auth_token:'),
    // auth-token 按 token 存储的 Redis key 前缀（用于校验 auth-token 请求头）
    'auth_token_prefix' => env('API_AUTH_TOKEN_PREFIX', 'api:auth_token:t:'),
    // user-token 有效期（秒），默认 7 天
    'user_token_exp' => (int) env('API_USER_TOKEN_EXP', 604800),
    // 按用户存储当前有效 user-token 的 Redis key 前缀（同一用户仅保留最新一次登录的 token）
    'user_token_current_prefix' => env('API_USER_TOKEN_CURRENT_PREFIX', 'api:user:current_token:'),
    // 用户信息 Redis 缓存过期时间（秒），默认 7 天
    'user_cache_expire' => (int) env('API_USER_CACHE_EXPIRE', 604800),
    // 用户缓存 Redis key 前缀
    'user_cache_prefix' => env('API_USER_CACHE_PREFIX', 'api:user:'),
    // 用户信息加密密钥（用于 Redis 中 value 的加密），建议 32 位
    'user_encrypt_key' => env('API_USER_ENCRYPT_KEY', 'dafuweng_api_user_cache_key_32'),
    // 玩家信息按 username 缓存（Token 中间件用），0 表示不缓存
    'player_cache_ttl' => (int) env('API_PLAYER_CACHE_TTL', 300),
    'player_cache_prefix' => env('API_PLAYER_CACHE_PREFIX', 'api:player:'),
    // /api/v1/getPlayerInfo 返回体快照（Redis），0 表示不缓存；变更玩家数据时需 deletePlayerByUsername 失效
    'player_info_snapshot_ttl' => (int) env('API_PLAYER_INFO_SNAPSHOT_TTL', 180),
    'player_info_snapshot_prefix' => env('API_PLAYER_INFO_SNAPSHOT_PREFIX', 'api:v1:player_info:'),
];
