import 'dart:convert';

import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart';

/// Service simple de cache local basé sur SharedPreferences.
///
/// Fonctionne sur mobile et sur Flutter Web pour conserver des données
/// locales légères quand cela apporte une vraie valeur.
class CacheService {
  SharedPreferences? _prefs;

  Future<void> init() async {
    _prefs = await SharedPreferences.getInstance();
  }

  bool ready() => _prefs != null;

  Future<void> setJson(String key, Map<String, dynamic> value) async {
    if (_prefs == null) return;
    await _prefs!.setString(key, jsonEncode(value));
  }

  Map<String, dynamic>? getJson(String key) {
    if (_prefs == null) return null;
    final s = _prefs!.getString(key);
    if (s == null) return null;
    try {
      return jsonDecode(s) as Map<String, dynamic>;
    } catch (e) {
      if (kDebugMode) print('CacheService getJson error: $e');
      return null;
    }
  }

  Future<void> setString(String key, String value) async {
    if (_prefs == null) return;
    await _prefs!.setString(key, value);
  }

  String? getString(String key) => _prefs?.getString(key);
}


