import 'package:shared_preferences/shared_preferences.dart'; import 'package:travel_mate/models/album_photo.dart'; /// Stores shared album photos per trip locally for offline access. class AlbumService { /// Loads photos for the given trip. Future> loadPhotos(String tripId) async { final prefs = await SharedPreferences.getInstance(); final raw = prefs.getString(_key(tripId)); if (raw == null) return const []; try { return AlbumPhoto.decodeList(raw); } catch (_) { await prefs.remove(_key(tripId)); return const []; } } /// Saves photo list. Future savePhotos(String tripId, List photos) async { final prefs = await SharedPreferences.getInstance(); await prefs.setString(_key(tripId), AlbumPhoto.encodeList(photos)); } /// Adds one photo. Future> addPhoto(String tripId, AlbumPhoto photo) async { final current = await loadPhotos(tripId); final updated = [...current, photo]; await savePhotos(tripId, updated); return updated; } /// Deletes a photo. Future> deletePhoto(String tripId, String photoId) async { final current = await loadPhotos(tripId); final updated = current.where((p) => p.id != photoId).toList(); await savePhotos(tripId, updated); return updated; } String _key(String tripId) => 'album_$tripId'; }