using Hotline.Settings;
using Hotline.Share.Dtos.Settings;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Hotline.Caching.Interfaces
{
    public interface ISystemDicDataCacheManager
    {
        IReadOnlyList<SystemDicData> GetSysDicDataCache(string code);
        IReadOnlyList<SystemDicData> GetVisitSatisfaction();
        void RemoveSysDicDataCache(string code);
        IReadOnlyList<SystemDicData> AcceptType { get; }
        IReadOnlyList<SystemDicData> LeaderSMS { get; }

        IReadOnlyList<SystemDicData> CallForwardingSource { get; }

        /// <summary>
        /// 作业场所
        /// </summary>
        IReadOnlyList<SystemDicDataOutDto> Workplace { get; }

        /// <summary>
        /// 作业场所名称
        /// </summary>
        IReadOnlyList<SystemDicDataOutDto> WorkplaceName { get; }

        /// <summary>
        /// 作业类型
        /// </summary>
        IReadOnlyList<SystemDicDataOutDto> JobType { get; }

        /// <summary>
        /// 经营单位类型
        /// </summary>
        IReadOnlyList<SystemDicDataOutDto> BusinessUnitType { get; }

        /// <summary>
        /// 公告类型
        /// </summary>
        IReadOnlyList<SystemDicData> BulletinType { get; }

        /// <summary>
        /// 随手拍公告类型
        /// </summary>
        IReadOnlyList<SystemDicDataOutDto> SnapshotBulletinType { get; }
        IReadOnlyList<SystemDicDataOutDto> WorkArea { get; }
        IReadOnlyList<SystemDicData> VisitMananer { get; }
        IReadOnlyList<SystemDicData> SourceChannel { get; }

        /// <summary>
        /// 随手拍公告来源
        /// </summary>
        IReadOnlyCollection<SystemDicDataOutDto> SnapshotBulletinSource { get; }

        /// <summary>
        /// 随手拍公告来源
        /// </summary>
        /// <param name="dicDataValue"></param>
        /// <returns></returns>
        SystemDicDataOutDto GetSnapshotBulletinType(string dicDataValue);

        /// <summary>
        /// 用户头像
        /// </summary>
        /// <param name="v"></param>
        /// <returns></returns>
        string HeaderImages(string name);

        /// <summary>
        /// 红包补充发放类型
        /// </summary>
        IReadOnlyCollection<SystemDicDataOutDto> SnapshotReplenishType { get; }

        /// <summary>
        /// 随手拍工单标签
        /// </summary>
        IReadOnlyCollection<SystemDicDataOutDto> SnapshotOrderLabel { get; }

        /// <summary>
        /// 工单标签
        /// </summary>
        IReadOnlyCollection<SystemDicDataOutDto> OrderTag { get; }

        IReadOnlyCollection<SystemDicDataOutDto> VisitSatisfaction { get; }

        /// <summary>
        /// 兴唐动作状态映射
        /// </summary>
        IReadOnlyCollection<SystemDicDataOutDto> XingTangOperationMap { get; }

        /// <summary>
        /// 随手拍特殊红包审核类型
        /// </summary>
        IReadOnlyCollection<SystemDicDataOutDto> SnapshotRedPackSpecialType { get; }

        /// <summary>
        /// 额外扣除积分类型
        /// </summary>
        IReadOnlyCollection<SystemDicDataOutDto> ExtraDeductionPointsType { get; }

        /// <summary>
        /// 随手拍重办原因
        /// </summary>
        IReadOnlyList<SystemDicData> InstaShotSpecialReason { get; }

        /// <summary>
        /// 随手拍安全员类型
        /// </summary>
        IReadOnlyList<SystemDicData> SafetyType { get; }
    }
}
