readOldestEvents method
Read oldest events, with priority events first.
Implementation
Future<List<EventRow>> readOldestEvents(int limit) async {
if (_db == null || !_isOpen) return [];
try {
// Priority events first, then by ts_millis ascending
final List<Map<String, dynamic>> maps = await _db!.rawQuery(
'''
SELECT * FROM $_tableName
ORDER BY
CASE event_name
WHEN 'first_open' THEN 0
WHEN 'session_start' THEN 1
WHEN 'ad_impression' THEN 2
ELSE 3
END,
ts_millis ASC
LIMIT ?
''',
[limit],
);
return maps.map((m) => EventRow.fromMap(m)).toList();
} catch (e, st) {
dbLogger.severe('SqliteEventStorage: readOldestEvents failed', e, st);
await _handlePotentialCorruption(e);
return [];
}
}