class Constants {
  // ==================== 环境配置 ====================
  /// 当前环境：dev / staging / prod，通过 --dart-define=APP_ENV=xxx 注入
  static const String env =
      String.fromEnvironment('APP_ENV', defaultValue: 'dev');

  /// API 地址，由 env/*.json 中的 SERVICE_URL 注入
  static String get baseUrl => const String.fromEnvironment('SERVICE_URL');

  // ==================== 超时配置 ====================
  static const int connectTimeout = 30000;
  static const int receiveTimeout = 30000;
  static const int sendTimeout = 30000;

  // ==================== 业务状态码 ====================
  static const int successCode = 200;
  static const int tokenExpiredCode = 401;
  static const int forbiddenCode = 403;
  static const int notFoundCode = 404;
  static const int serverErrorCode = 500;

  // ==================== 重试配置 ====================
  static const int maxRetries = 3;
  static const int retryInterval = 1000;
  static const bool enableExponentialBackoff = true;

  // ==================== 缓存配置 ====================
  static const bool enableCache = false;
  static const int cacheDuration = 300;

  // ==================== Token 配置 ====================
  static const int tokenExpiryHours = 24;

  // ==================== 其他配置 ====================
  static const String defaultLang = 'zh-CN';

  // ==================== Mock 数据开关 ====================
  /// 接口未提供时使用本地 mock 数据。
  /// 设为 false 并调整 models 的 fromJson 即可切回真实接口。
  static const bool useMockData = true;
}
