using Hotline.Settings;
using Hotline.Snapshot;

namespace Hotline.Caching.Interfaces
{
    public interface ISystemSettingCacheManager
    {
        SystemSetting? GetSetting(string code);
        void DelSystemSetting(string code);
        int NoConnectByeTimes { get; }
        int EffectiveTimes { get; }
        int ConnectByeTimes { get; }
        int CallInOverConnRingTime { get; }
        int SeatChaoTime { get; }
        int RingTimes { get; }
        string RecordPrefix { get; }

        /// <summary>
        /// 中心直办件默认回访人Id
        /// 根据禅道 自贡需求 Id_361, 第一条, 3小条需求;
        /// </summary>
        string DefaultVisitEmployeeId { get; }
        int FixedQueryCount { get; }

        /// <summary>
        /// 自动发布中心直办归档工单
        /// </summary>
        bool AutomaticPublishOrder { get; }

        /// <summary>
        /// 取消发布功能总开关
        /// </summary>
        bool CancelPublishOrderEnabled { get; }

        /// <summary>
        /// 保存回访详情时发送延迟消息同步通话记录
        /// 如果回访通话记录有多条, 需要关联通话时长最长的那条
        /// </summary>
        int VisitCallDelaySecond { get; }

        /// <summary>
        /// 发送回访短信后等候市民回复短信的时间
        /// 如果超过这个时间就更新回访为默认满意
        /// </summary>
        int DefaultVisitSmsDelaySecond { get; }

        /// <summary>
        /// 通话记录同步时不推送省上的时间(默认:2024/11/19 18:08)
        /// </summary>
        DateTime CallSyncUnPushDateTime { get; }

        /// <summary>
        /// 即将超期列表调用方法的版本(有优化办法和老版本)
        /// </summary>
        int GetAboutToExpireVersion { get; }

        /// <summary>
        /// 工单开始办理如果获取的通话记录是呼出并且录音文件是空就不推送通话记录
        /// </summary>
        bool OrderStartHandlerPushCallIsNull { get; }

        /// <summary>
        /// 微信小程序Secret
        /// </summary>
        string WxOpenAppSecret { get; }

        /// <summary>
        /// 微信小程序OpenId
        /// </summary>
        string WxOpenAppId { get; }

        /// <summary>
        /// 微信ApiHost
        /// </summary>
        string WxApiHost { get; }

        /// <summary>
        /// 文件服务器地址
        /// </summary>
        string FileServerUrl { get; }

        /// <summary>
        /// 文件下载接口
        /// </summary>
        string FileDownloadApi { get; }

        /// <summary>
        /// 小程序Banner集合
        /// </summary>
        string AppBanner { get; }

        /// <summary>
        /// 网格员回复等待时间(单位:小时)
        /// 超过该时间自动退回工单
        /// </summary>
        double OvertimeBack { get; }

        /// <summary>
        /// 天阙服务AppKey|AppSecret
        /// </summary>
        string TianQueAppKeySecret { get; }

        /// <summary>
        /// 天阙推送受理信息接口Url
        /// </summary>
        string TianQuanPostAcceptInfoApi { get; }

        /// <summary>
        /// 天阙接口请求方式
        /// </summary>
        ETianqueRequestMode TianQueRequestMode { get; }

        bool Snapshot { get; }

        /// <summary>
        /// 小程序同一个用户上报工单间隔时间(单位:分)
        /// </summary>
        int SnapshotIntervalMinutes { get; }

        /// <summary>
        /// 是否开启自动填写办理意见至汇总节点
        /// </summary>
        bool IsAutoFillSummaryOpinion { get; }

        /// <summary>
        /// 是否不推送呼出的无文件的通话记录
        /// </summary>
        bool IsNoPushCallNativeOutNoFile { get; }

        bool IsSendDissatisfiedScreenSms { get; }
    }
}
