/// 네트워크 설정 상수
///
/// 모든 네트워크 관련 설정을 중앙 관리합니다.
class NetworkConfig {
  // 타임아웃 설정 (밀리초)
  static const int connectTimeout = 15000; // 15초
  static const int receiveTimeout = 30000; // 30초
  static const int sendTimeout = 15000; // 15초

  // 재시도 설정
  static const int maxRetries = 3;
  static const int retryDelayMillis = 1000; // 1초
  static const double retryDelayMultiplier = 2.0; // 지수 백오프

  // 캐시 설정
  static const Duration cacheMaxAge = Duration(minutes: 15);
  static const int cacheMaxSize = 50 * 1024 * 1024; // 50MB

  // 네이버 API 설정
  static const String naverApiBaseUrl = 'https://openapi.naver.com';
  static const String naverMapBaseUrl = 'https://map.naver.com';
  static const String naverShortUrlBase = 'https://naver.me';

  // CORS 프록시 (웹 환경용)
  static const String corsProxyUrl = 'https://api.allorigins.win/get';

  // User Agent
  static const String userAgent =
      'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36';

  /// CORS 프록시 URL 생성
  static String getCorsProxyUrl(String originalUrl) {
    return '$corsProxyUrl?url=${Uri.encodeComponent(originalUrl)}';
  }
}
