package com.qiaoba.api.system.service;

import com.qiaoba.api.system.entity.SysConfig;
import com.qiaoba.api.system.entity.param.SysConfigParam;

import java.util.List;

/**
 * 系统配置对外暴露接口
 *
 * @author ailanyin
 * @version 1.0
 * @since 2023-04-23 20:33:43
 */
public interface SysConfigApiService {

    /**
     * 新增系统配置
     *
     * @param sysConfig sysConfig
     * @return > 0 = success
     */
    int insert(SysConfig sysConfig);

    /**
     * 更新系统配置
     *
     * @param sysConfig sysConfig
     * @return > 0 = success
     */
    int updateById(SysConfig sysConfig);

    /**
     * 查询列表
     *
     * @param param 条件
     * @return 系统配置列表
     */
    List<SysConfig> selectList(SysConfigParam param);

    /**
     * 查询详细
     *
     * @param configId 系统配置Id
     * @return 系统配置信息
     */
    SysConfig selectById(String configId);

    /**
     * 删除系统配置
     *
     * @param configId 系统配置Id
     * @return > 0 = success
     */
    int deleteById(String configId);

    /**
     * 批量删除系统配置
     *
     * @param ids 系统配置Ids
     * @return > 0 = success
     */
    int deleteByIds(List<String> ids);

    /**
     * 刷新缓存
     */
    void resetConfigCache();

    /**
     * 根据参数键名查询参数值
     *
     * @param configKey configKey
     * @return value
     */
    String selectConfigByKey(String configKey);
}
