using Core.Thalos.Infraestructure.Caching.Configs;
namespace LSA.Core.Dapper.Service.Caching
{
    public static class CacheHelper
    {
        /// 
        /// Determines the cache duration based on specific duration, settings, or a default value.
        /// 
        /// Specific cache duration in minutes, if provided.
        /// General cache settings containing default duration values.
        /// The cache duration as a TimeSpan.
        public static TimeSpan GetCacheDuration(CacheSettings cacheSettings, int? specificCacheDuration = 0)
        {
            var defaultCacheDuration = TimeSpan.FromMinutes(.5);
            if (specificCacheDuration.HasValue && specificCacheDuration.Value > 0)
            {
                return TimeSpan.FromMinutes(specificCacheDuration.Value);
            }
            if (cacheSettings.DefaultCacheDurationInMinutes > 0)
            {
                return TimeSpan.FromMinutes(cacheSettings.DefaultCacheDurationInMinutes);
            }
            return defaultCacheDuration;
        }
    }
}