/// SharedPreferences 键名常量统一管理
class SPKeys {
  SPKeys._();

  /// 设备ID
  static const String deviceId = 'omon_device_id';

  /// FCM Token
  static const String fcmToken = 'fcm_token';

  /// 当前语言
  static const String currentLocal = 'current_local';

  /// 主题是否为浅色
  static const String lightTheme = 'is_theme_light';

  /// 主题模式: 'system', 'dark', 'light'
  static const String themeMode = 'theme_mode';

  /// 是否启动游戏
  static const String launchGame = 'is_launch_game';

  /// 忽略的版本号
  static const String ignoreVersion = 'ignore_version';

  /// 是否新安装
  static const String isNewInstall = 'is_new_install';

  /// Launch 数据
  static const String launchData = 'launch_data';

  /// 是否地区禁用
  static const String isRegionDisabled = 'is_region_disabled';

  /// 是否用户禁用
  static const String isUserDisabled = 'is_user_disabled';

  /// 是否设备禁用
  static const String isDeviceDisabled = 'is_device_disabled';

  /// 最后一次上传的性能日志 boostSessionId
  static const String lastMetricsLog = 'last_metrics_log';

  /// 最后一次上传的 ES 日志 boostSessionId
  static const String lastESLog = 'last_es_log';

  /// 是否开启 debug log
  static const String enableDebugLog = 'enable_debug_log';

  /// 是否开启 ping（0默认 1开启 2关闭）
  static const String enablePingMode = 'enable_ping_mode';

  /// 当前选中的节点
  static const String selectedLocation = 'selected_location';

  /// 最近选择的节点列表
  static const String recentLocations = 'recent_locations';

  /// 路由模式选择
  static const String routingModeSelected = 'routing_mode_selected';

  /// 分流隧道选中的模式
  static const String splittunnelingSelectedMode =
      'splittunneling_selected_mode';

  /// 分流隧道缓存应用
  static const String splittunnelingCachedApps = 'splittunneling_cached_apps';

  /// 分流隧道排除模式选中的应用
  static const String splittunnelingExcludeSelectedApps =
      'splittunneling_exclude_selected_apps';

  /// 分流隧道包含模式选中的应用
  static const String splittunnelingIncludeSelectedApps =
      'splittunneling_include_selected_apps';

  /// Banner 缓存键前缀（完整键为 banner_cache_{position}）
  static const String bannerCachePrefix = 'banner_cache_';

  /// 获取指定位置的 banner 缓存键
  static String bannerCacheKey(String position) =>
      '$bannerCachePrefix$position';

  /// 上次更新提醒时间（毫秒时间戳）
  static const String lastUpgradeNoticeTime = 'last_upgrade_notice_time';

  /// 上次更新提醒的版本号
  static const String lastUpgradeNoticeVersion = 'last_upgrade_notice_version';

  /// 上次通知权限提醒时间（毫秒时间戳）
  static const String lastPushNoticeTime = 'last_push_notice_time';
}
