removeExpiredEvents static method

Future<void> removeExpiredEvents({
  1. Duration? maxAge,
})

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');
  }
}