import 'dart:convert'; import 'package:shared_preferences/shared_preferences.dart'; import '../models/price_data.dart'; class StorageService { static const String _alertsKey = 'price_alerts'; static const String _customAuecKey = 'custom_auec_amount'; Future> getAlerts() async { final prefs = await SharedPreferences.getInstance(); final alertsJson = prefs.getString(_alertsKey); if (alertsJson == null) return []; final List decoded = jsonDecode(alertsJson); return decoded.map((e) => PriceAlert.fromJson(e as Map)).toList(); } Future saveAlerts(List alerts) async { final prefs = await SharedPreferences.getInstance(); final alertsJson = jsonEncode(alerts.map((e) => e.toJson()).toList()); await prefs.setString(_alertsKey, alertsJson); } Future addAlert(PriceAlert alert) async { final alerts = await getAlerts(); alerts.add(alert); await saveAlerts(alerts); } Future updateAlert(PriceAlert alert) async { final alerts = await getAlerts(); final index = alerts.indexWhere((a) => a.id == alert.id); if (index != -1) { alerts[index] = alert; await saveAlerts(alerts); } } Future deleteAlert(String id) async { final alerts = await getAlerts(); alerts.removeWhere((a) => a.id == id); await saveAlerts(alerts); } Future getCustomAuecAmount() async { final prefs = await SharedPreferences.getInstance(); return prefs.getDouble(_customAuecKey); } Future setCustomAuecAmount(double amount) async { final prefs = await SharedPreferences.getInstance(); await prefs.setDouble(_customAuecKey, amount); } // Generic string storage methods for update checking Future getString(String key) async { final prefs = await SharedPreferences.getInstance(); return prefs.getString(key); } Future setString(String key, String value) async { final prefs = await SharedPreferences.getInstance(); await prefs.setString(key, value); } }