package com.red.circle.other.infra.database.cache.service.user;


import com.red.circle.common.business.core.EnumConfigCache;
import com.red.circle.common.business.core.SysConfigEnum;
import com.red.circle.other.infra.database.rds.entity.sys.EnumConfig;
import com.red.circle.other.inner.enums.config.EnumConfigKey;
import java.math.BigDecimal;
import java.util.List;

/**
 * 枚举参数配置.
 *
 * @author pengliang on 2020/12/3
 */
public interface CacheEnumConfigManagerService {

  /**
   * 获取所有配置参数.
   *
   * @return ignore
   */
//  List<EnumConfigCache> listAppEnumConfigCache(String sysOrigin);



  /**
   * 获取系统枚举信息 转换 string.
   *
   * @param enumConfigKey 枚举key
   * @return string
   */
  String getVal(EnumConfigKey enumConfigKey, String sysOrigin);

  /**
   * 获取系统枚举信息 转换 string.
   *
   * @param key 枚举key
   * @return string
   */
//  String getVal(String key, String sysOrigin);

  /**
   * 获取系统枚举信息 转换 int.
   *
   * @param sysConfigEnum 枚举key
   * @return int
   */
//  int getValInt(SysConfigEnum sysConfigEnum, String sysOrigin);

  /**
   * 获取系统枚举信息 转换 BigDecimal.
   *
   * @param sysConfigEnum 枚举key
   * @return BigDecimal
   */
//  BigDecimal getValBigDecimal(SysConfigEnum sysConfigEnum, String sysOrigin);

  /**
   * 获取系统枚举信息 转换 boolean.
   *
   * @param sysConfigEnum 枚举key
   * @return boolean
   */
  boolean getValBool(SysConfigEnum sysConfigEnum, String sysOrigin);

  List<EnumConfig> listBySysOrigin(String sysOrigin);

  void saveAll(List<EnumConfig> list);
}
