getCachedResult method

SearchResult? getCachedResult(
  1. 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?,
  );
}