namespace APT.BaseData.Domain.ApiModel.Platform
{
    public static class RedisCacheKey
    {
        /// <summary>
        /// redis key
        /// </summary>
        public const string DbsRedisKey = "DbConn_RedisKey2022";
        /// <summary>
        /// 历史数据缓存
        /// </summary>
        public const string History = "HisPoint_History";

        /// <summary>
        /// 实时数据缓存
        /// </summary>
        public const string RealTime = "HisPoint_RealTime";

        public const string RealTimeTest = "RealTimeTest";

        /// <summary>
        /// 设备运行状态点最新改变的点
        /// </summary>
        public const string EquipLastChange = "HisPoint_EquipLastChange";

        /// <summary>
        /// 设备状态回写
        /// </summary>
        public const string EquipOnWriteBack = "EquipOnWriteBack";

        /// <summary>
        /// 设备状态回写历史值
        /// </summary>
        public const string HistEquipOnWriteBack = "Hist_EquipOnWriteBack";

        /// <summary>
        /// 5分钟数据缓存
        /// </summary>
        public const string Minute = "HisPoint_Minute";
        /// <summary>
        /// 每个点的心跳数据
        /// </summary>
        public const string Heart = "OptHeart";
        /// <summary>
        /// 设备器具最后在线时间
        /// </summary>
        public const string LastOnlineTime = "OptLastOnlineTime";

        /// <summary>
        /// 充电桩最后在线时间
        /// </summary>
        public const string ChargLastOnlineTime = "ChargLastOnlineTime";
        /// <summary>
        /// 掉线时间
        /// </summary>
        public const string HeartOff = "OptHeartOff";

        /// <summary>
        /// 报警触发时间
        /// </summary>
        public const string TriggerTime = "Alarm_TriggerTime";

        /// <summary>
        /// 报警上一个值
        /// </summary>
        public const string LastValue = "Alarm_LastValue";

        /// <summary>
        /// 器具报警信息
        /// </summary>
        public const string AppDesc = "Alarm_AppDesc";

        /// <summary>
        /// 最后采集时间
        /// </summary>
        public const string LastConnetTime = "Last_ConnetTime";

        /// <summary>
        /// 最后通知时间
        /// </summary>
        public const string LastNoticeTime = "Last_NoticeTime";

        /// <summary>
        /// 租户数据库连接Key
        /// </summary>
        //public const string TenantConnKey = "TenantConnKey_";
        /// <summary>
        /// 最后通知次数
        /// </summary>
        public const string LastNoticeCount = "Last_NoticeCount";
        /// <summary>
        /// 实时监测节点缓存
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string GetRealTimeNode(this string value)
        {
            return "RealTimeNode_" + value;
        }

        /// <summary>
        /// 配电结构选中变量
        /// </summary>
        public const string StructureSetting = "Structure_Setting";
        public const string EquipmentAttrsSetting = "EquipmentAttrs_Setting";

        /// <summary>
        /// 用户节点查询时间
        /// </summary>
        public const string AfterNodeConditionSetting = "AfterNodeCondition_Setting";
        /// <summary>
        /// 用户节点查询时间
        /// </summary>
        public const string NodeConditionSetting = "NodeCondition_Setting";

        /// <summary>
        /// 用户节点查询时间
        /// </summary>
        public const string AfterHistNodeConditionSetting = "AfterHistNodeCondition_Setting";
        /// <summary>
        /// 用户节点查询时间
        /// </summary>
        public const string HistNodeConditionSetting = "HistNodeCondition_Setting";

        /// <summary>
        /// 用户节点查询时间
        /// </summary>
        public const string AfterNodePickConditionSetting = "AfterNodePickCondition_Setting";
        /// <summary>
        /// 用户节点查询时间
        /// </summary>
        public const string NodePickConditionSetting = "NodePickCondition_Setting";

        /// <summary>
        /// 能源用量中选中节点
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string GetEnergyDosage(this string value)
        {
            return "EnergyDosage_" + value;
        }
        /// <summary>
        /// 选中生产单元节点
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string GetEnergyMeterNode(this string value)
        {
            return "EnergyMeterNode";
        }
        /// <summary>
        /// 班组能耗绩效选中班组
        /// </summary>
        public const string KpiTeamSetting = "Kpi_Team_Setting";

        /// <summary>
        /// 派生变量每日重算时间
        /// </summary>
        public const string DeriveVariableTime = "DeriveVariable_Time";

        /// <summary>
        /// 抄表卡最后抄表时间
        /// </summary>
        public const string MeterReadTime = "MeterRead_Time";

        /// <summary>
        /// 日抄表卡最后抄表时间
        /// </summary>
        public const string MeterReadDayTime = "MeterRead_DayTime";

        /// <summary>
        /// 能源系统图节点选中
        /// </summary>
        public const string EnergySystem = "EnergySystem_Setting";

        /// <summary>
        /// 多变量曲线选择
        /// </summary>
        public const string VariableSelect = "Variable_Select";

        /// <summary>
        /// 多变量曲线保存
        /// </summary>
        public const string VariableShow = "Variable_Show";

        /// <summary>
        /// 多变量曲线快照保存
        /// </summary>
        public const string VariableSnapshotSave = "VariableSnapshot_Save";

        #region 用途监测

        /// <summary>
        /// 实时监测节点缓存
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string GetUseNode(this string value)
        {
            return "UseMonitor_" + value;
        }

        #endregion

        #region 历史监测
        public static string GetHistoryNode(this string value)
        {
            return "HistoryMonitor_" + value;
        }
        #endregion

        #region 服务器校验
        public const string HardWareCheckErrCount = "OPT_HardWareCheckErrCount";
        public const string HardWareCheck = "OPT_HardWareCheck";
        #endregion

        #region 服务器信息
        public const string HardWareCpuInfo = "OPT_HardWareCpuInfo";
        public const string HardWareRamInfo = "OPT_HardWareRamInfo";
        public const string HardWarePVInfo = "OPT_HardWarePVInfo";
        #endregion

        #region 首页
        public const string HomePageUserSetting = "HomePage_UserSettingConf";

        public const string HomePageStatistics = "HomePage_Statistics";

        public const string HomePageCharts = "HomePage_Charts";

        public const string HomePageRankings = "HomePage_Rankings";
        /// <summary>
        /// 月总能耗/用量
        /// </summary>

        public const string SummaryInfoModel = "SummaryInfoModel";
        /// <summary>
        /// 器具监测
        /// </summary>
        public const string ApplianceInfo = "ApplianceInfo";
        /// <summary>
        /// 月能耗排名
        /// </summary>
        public const string RankingData = "RankingData";
        /// <summary>
        /// 设备耗能监测
        /// </summary>
        public const string EquipEneryUse = "EquipEneryUse";


        #endregion

        #region 充电桩

        /// <summary>
        /// 充电桩实时状态
        /// </summary>
        public const string ChargingPileStatus = "ChargingPile_Status";

        #endregion

        #region MQTT
        public static string GetPubRedisKey(this string value)
        {
            return "PUSH_PRE_" + value;
        }

        public static string GetSubRedisKey(this string value)
        {
            return "SUB_PRE_" + value;
        }
        #endregion

        #region 表单
        public const string PageEditRedisKey = "PAGE_EDIT_{0}_{1}";
        public const string PageTableRedisKey = "PAGE_TABLE_{0}_{1}";
        public const string PageTreeRedisKey = "PAGE_TREE_{0}_{1}";
        public const string TablePageTablesRedisKey = "TABLE_PAGE_TABLES_{0}_{1}_{2}_{3}";
        public const string TableUserConfigRedisKey = "TABLE_USER_CONFIG_{0}_{1}";
        public const string UserCustomConfigRedisKey = "USER_CUSTOM_CONFIG_{0}_{1}";
        public const string SearchConfigRedisKey = "SEARCH_CONFIG_{0}_{1}_{2}_{3}";
        #endregion

        /// <summary>
        /// 待办 时间限制 Key
        /// </summary>
        public const string TaskTimeSet = "FM201_{0}";
    }
}
