import 'package:dio/dio.dart'; import 'package:superport/core/config/environment.dart'; import 'package:superport/di/injection_container.dart' as di; import 'package:superport/services/license_service.dart'; import 'package:superport/data/datasources/remote/api_client.dart'; void main() async { print('\n===== 라이센스 API 연결 상태 확인 =====\n'); // 환경 초기화 await Environment.initialize(); print('📌 환경 설정 확인:'); print(' - USE_API: ${Environment.useApi}'); print(' - API_BASE_URL: ${Environment.apiBaseUrl}'); print(' - 로깅 활성화: ${Environment.enableLogging}'); // DI 설정 await di.setupDependencies(); print('\n📌 DI 컨테이너 확인:'); print(' - LicenseService 등록됨: ${di.getIt.isRegistered()}'); print(' - ApiClient 등록됨: ${di.getIt.isRegistered()}'); // API Client 확인 final apiClient = di.getIt(); print('\n📌 API Client 설정:'); print(' - Base URL: ${apiClient.dio.options.baseUrl}'); print(' - Headers: ${apiClient.dio.options.headers}'); // 실제 API 호출 테스트 print('\n📌 실제 API 호출 테스트:'); try { // 1. 로그인 API 테스트 print('\n1️⃣ 로그인 API 테스트...'); final loginResponse = await apiClient.dio.post( '/auth/login', data: { 'email': 'admin@superport.kr', 'password': 'admin123!', }, ); if (loginResponse.statusCode == 200) { print(' ✅ 로그인 성공!'); final token = loginResponse.data['data']['access_token']; print(' - 토큰 받음: ${token.substring(0, 20)}...'); // 토큰 설정 apiClient.dio.options.headers['Authorization'] = 'Bearer $token'; // 2. 라이센스 목록 API 테스트 print('\n2️⃣ 라이센스 목록 API 테스트...'); final licenseResponse = await apiClient.dio.get('/licenses'); if (licenseResponse.statusCode == 200) { print(' ✅ 라이센스 목록 조회 성공!'); final data = licenseResponse.data['data']; if (data is List) { print(' - 라이센스 개수: ${data.length}개'); } else if (data['items'] != null) { print(' - 라이센스 개수: ${data['items'].length}개'); } } } } catch (e) { print(' ❌ API 호출 실패: $e'); } print('\n📌 결론:'); if (Environment.useApi) { print(' ✅ 라이센스 관리는 실제 API (${Environment.apiBaseUrl})를 사용 중입니다!'); } else { print(' ⚠️ 라이센스 관리는 Mock 데이터를 사용 중입니다.'); } print('\n===== 테스트 완료 =====\n'); }