getCachedResult method
- String query
Retrieves a cached search result.
Returns the cached SearchResult for query if it exists and hasn't
expired. Returns null if no valid cache entry exists.
Implementation
SearchResult? getCachedResult(String query) {
_ensureInitialized();
final data = _box!.get(query.toLowerCase());
if (data == null) return null;
final timestamp = DateTime.fromMillisecondsSinceEpoch(
data['timestamp'] as int,
);
// Check if cache has expired
if (DateTime.now().difference(timestamp) > cacheDuration) {
_box!.delete(query.toLowerCase());
return null;
}
final items = (data['items'] as List<dynamic>)
.map((item) => _deserializeItem(item as Map<dynamic, dynamic>))
.toList();
return SearchResult(
query: data['query'] as String,
items: items,
totalCount: data['totalCount'] as int?,
executionTimeMs: data['executionTimeMs'] as int?,
hasMore: data['hasMore'] as bool? ?? false,
nextPage: data['nextPage'] as String?,
);
}