/// 更新渠道类型
enum UpdateChannel {
  /// Google Play 应用内更新
  googlePlay,

  /// 自建服务器 APK 升级
  selfHosted,
}

/// 更新配置
class UpdateConfig {
  /// 更新渠道
  final UpdateChannel channel;

  /// API 基础地址 (selfHosted 模式必需)
  final String? apiBaseUrl;

  /// 是否启用更新检测
  final bool enabled;

  /// 检查更新间隔（秒）
  final int checkIntervalSeconds;

  const UpdateConfig({
    required this.channel,
    this.apiBaseUrl,
    this.enabled = true,
    this.checkIntervalSeconds = 86400, // 默认24小时
  });

  /// 默认配置 - 自建服务器模式
  static UpdateConfig selfHosted({
    required String apiBaseUrl,
    bool enabled = true,
    int checkIntervalSeconds = 86400,
  }) {
    return UpdateConfig(
      channel: UpdateChannel.selfHosted,
      apiBaseUrl: apiBaseUrl,
      enabled: enabled,
      checkIntervalSeconds: checkIntervalSeconds,
    );
  }

  /// 默认配置 - Google Play 模式
  static UpdateConfig googlePlay({
    bool enabled = true,
    int checkIntervalSeconds = 86400,
  }) {
    return UpdateConfig(
      channel: UpdateChannel.googlePlay,
      enabled: enabled,
      checkIntervalSeconds: checkIntervalSeconds,
    );
  }
}
