// lib/services/settings_service.dart import 'package:shared_preferences/shared_preferences.dart'; import 'package:environment_monitoring_app/services/base_api_service.dart'; class SettingsService { final BaseApiService _baseService = BaseApiService(); static const _inSituChatIdKey = 'telegram_in_situ_chat_id'; static const _tarballChatIdKey = 'telegram_tarball_chat_id'; /// Fetches settings from the server and saves them to local storage. Future syncFromServer() async { final result = await _baseService.get('settings'); if (result['success'] == true && result['data'] is Map) { final settings = result['data'] as Map; final prefs = await SharedPreferences.getInstance(); // Save the chat IDs from the nested map final inSituSettings = settings['marine_in_situ'] as Map?; await prefs.setString(_inSituChatIdKey, inSituSettings?['telegram_chat_id'] ?? ''); final tarballSettings = settings['marine_tarball'] as Map?; await prefs.setString(_tarballChatIdKey, tarballSettings?['telegram_chat_id'] ?? ''); return true; } return false; } /// Gets the locally stored Chat ID for the In-Situ module. Future getInSituChatId() async { final prefs = await SharedPreferences.getInstance(); return prefs.getString(_inSituChatIdKey) ?? ''; } /// Gets the locally stored Chat ID for the Tarball module. Future getTarballChatId() async { final prefs = await SharedPreferences.getInstance(); return prefs.getString(_tarballChatIdKey) ?? ''; } }