using JSMR.Application.Common.Caching; using JSMR.Application.VoiceWorks.Ports; using JSMR.Application.VoiceWorks.Search.Contracts; namespace JSMR.Application.VoiceWorks.Search; //public sealed class SearchVoiceWorksHandler(IVoiceWorkReader reader, ICache cache) //{ // //public async Task HandleAsync(SearchVoiceWorksRequest request, CancellationToken cancellationToken) // //{ // // VoiceWorkSearchOptions searchOptions = request.Options; // // string cacheKey = $"vw:{searchOptions.GetHashCode()}"; // // VoiceWorkSearchResults? cachedResults = await cache.GetAsync(cacheKey, cancellationToken); // // if (cachedResults != null) // // return new SearchVoiceWorksResponse(cachedResults); // // VoiceWorkSearchResults results = await reader.SearchAsync(searchOptions, cancellationToken); // // CacheEntryOptions cacheEntryOptions = new() // // { // // SlidingExpiration = TimeSpan.FromMinutes(10) // // }; // // await cache.SetAsync(cacheKey, results, cacheEntryOptions, cancellationToken); // // return new SearchVoiceWorksResponse(results); // //} //}