removeExpiredEvents static method
Removes expired events that have exceeded maximum lifetime
Implementation
static Future<void> removeExpiredEvents({Duration? maxAge}) async {
try {
final cutoffTime = DateTime.now().subtract(
maxAge ?? const Duration(days: 7),
);
final events = _getAllEventsMap();
final allEvents = _getAllEvents();
final expiredEventIds = allEvents
.where((event) => event.createdAt.isBefore(cutoffTime))
.map((event) => event.id)
.toList();
for (final eventId in expiredEventIds) {
events.remove(eventId);
}
if (expiredEventIds.isNotEmpty) {
await _storage?.write(_storageKey, events);
log('Removed ${expiredEventIds.length} expired events');
}
} catch (e) {
log('Error removing expired events: $e');
}
}