import 'dart:convert'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:enter_farma_plus_mobile/src/core/storage/tenant_session_store.dart'; final recentEntitiesStoreProvider = Provider( (ref) => RecentEntitiesStore(ref.watch(secureStorageProvider)), ); class RecentEntitiesStore { const RecentEntitiesStore(this._storage); final dynamic _storage; Future>> read(String key) async { final raw = await _storage.read(key: key); if (raw == null || raw.isEmpty) { return const []; } final decoded = jsonDecode(raw); if (decoded is! List) { return const []; } return decoded .whereType() .map((item) => Map.from(item)) .toList(); } Future saveRecent(String key, Map record) async { final current = await read(key); final id = '${record['id'] ?? ''}'; current.removeWhere((item) => '${item['id'] ?? ''}' == id); current.insert(0, record); final trimmed = current.take(8).toList(); await _storage.write(key: key, value: jsonEncode(trimmed)); } }