package constants

import (
	"fmt"
	"time"
)

const (
	// SystemConfigTypeString 表示字符串配置。
	SystemConfigTypeString = "string"
	// SystemConfigTypeInt 表示整数配置。
	SystemConfigTypeInt = "int"
	// SystemConfigTypeBool 表示布尔配置。
	SystemConfigTypeBool = "bool"
	// SystemConfigTypeJSON 表示 JSON 配置。
	SystemConfigTypeJSON = "json"
	// SystemConfigCacheTTL 是系统配置默认缓存时长。
	SystemConfigCacheTTL = 5 * time.Minute
	// SystemConfigModuleCarrierCallback 是运营商回调配置模块。
	SystemConfigModuleCarrierCallback = "carrier_callback"
	// SystemConfigModulePayment 是 C 端支付方式配置模块。
	SystemConfigModulePayment = "c2b.payment"
	// SystemConfigPaymentAllowedCard 定义卡资产允许的支付方式集合。
	SystemConfigPaymentAllowedCard = "c2b.payment.card_allowed_methods"
	// SystemConfigPaymentAllowedDevice 定义设备资产允许的支付方式集合。
	SystemConfigPaymentAllowedDevice = "c2b.payment.device_allowed_methods"
	// SystemConfigCarrierCallbackCTCCRealnameEnabled 控制电信实名回调是否执行业务处理。
	SystemConfigCarrierCallbackCTCCRealnameEnabled = "carrier_callback.ctcc_realname.enabled"
	// SystemConfigCarrierCallbackCMCCRealnameEnabled 控制移动实名回调是否执行业务处理。
	SystemConfigCarrierCallbackCMCCRealnameEnabled = "carrier_callback.cmcc_realname.enabled"
	// SystemConfigCarrierCallbackCUCCRealnameEnabled 控制联通实名成功回调是否执行业务处理。
	SystemConfigCarrierCallbackCUCCRealnameEnabled = "carrier_callback.cucc_realname.enabled"
	// SystemConfigCarrierCallbackCUCCRealnameRemovalEnabled 控制联通解除实名回调是否执行业务处理。
	SystemConfigCarrierCallbackCUCCRealnameRemovalEnabled = "carrier_callback.cucc_realname_removal.enabled"
)

// RedisSystemConfigKey 生成单个系统配置的 Redis 缓存键。
func RedisSystemConfigKey(configKey string) string {
	return fmt.Sprintf("system_config:value:%s", configKey)
}
