using Hotline.Caching.Interfaces;
using Hotline.DI;
using Hotline.Settings.TimeLimits;
using Hotline.Share.Dtos.Settings;
using Hotline.Share.Enums.FlowEngine;
using MapsterMapper;
using XF.Domain.Dependency;
using XF.Domain.Repository;

namespace Hotline.Settings.TimeLimitDomain;

/// <summary>
/// 宜宾过期时间计算
/// </summary>
[Injection(AppScopes = EAppScope.YiBin)]
public class YiBinExpireTimeLimit : ExpireTimeLimitBase, ICalcExpireTime, IScopeDependency
{
    private readonly ISystemSettingCacheManager _systemSettingCacheManager;
    private readonly IRepository<TimeLimitSetting> _timeLimitSettingRepository;
    private readonly IExpireTimeHandler _expireTimeHandler;
    private readonly IMapper _mapper;
    private readonly IRepository<SystemSetting> _systemSettingRepository;
    private readonly IDaySettingCacheManager _daySettingCacheManager;

    public YiBinExpireTimeLimit(ISystemSettingCacheManager systemSettingCacheManager, IRepository<TimeLimitSetting> timeLimitSettingRepository, IExpireTimeHandler expireTimeHandler, IMapper mapper, IRepository<SystemSetting> systemSettingRepository, IDaySettingCacheManager daySettingCacheManager) : base(systemSettingCacheManager, timeLimitSettingRepository, expireTimeHandler, mapper, daySettingCacheManager)
    {
        _systemSettingCacheManager = systemSettingCacheManager;
        _timeLimitSettingRepository = timeLimitSettingRepository;
        _expireTimeHandler = expireTimeHandler;
        _mapper = mapper;
        _systemSettingRepository = systemSettingRepository;
        _daySettingCacheManager = daySettingCacheManager;
    }

}
