import 'dart:convert';
import 'package:flutter/services.dart';
import '../../../utils/logger.dart';

/// 서비스 데이터를 관리하는 저장소 클래스
class ServiceDataRepository {
  Map<String, dynamic>? _servicesData;
  bool _isInitialized = false;

  /// JSON 데이터 초기화
  Future<void> initialize() async {
    if (_isInitialized) return;

    try {
      final jsonString =
          await rootBundle.loadString('assets/data/subscription_services.json');
      _servicesData = json.decode(jsonString);
      _isInitialized = true;
      Log.i('ServiceDataRepository: JSON 데이터 로드 완료');
    } catch (e) {
      Log.w('ServiceDataRepository: JSON 로드 실패 - $e');
      // 로드 실패시 기존 하드코딩 데이터 사용
      _isInitialized = true;
    }
  }

  /// 서비스 데이터 가져오기
  Map<String, dynamic>? getServicesData() => _servicesData;

  /// 초기화 여부 확인
  bool get isInitialized => _isInitialized;
}
