package jnpf.parameter.service;

import jnpf.model.warningnotice.enums.CertificateTypeEnum;
import jnpf.model.warningnotice.po.FtbParamEntity;

/**
 * 基础参数服务
 */
public interface ParamService {

    /**
     * 保存或更新基础参数
     *
     * @param entity          基础参数
     */
    void saveOrUpdateParam(FtbParamEntity entity);

    /**
     * 根据key递增并返回最新数值
     *
     * @param key    参数key
     * @param number 递增参数（兼容调用方传参）
     * @return 最新数值
     */
    default Long increment(String key, Long number){
        return increment(key, key,number);
    }

    /**
     * 根据key递增并返回最新数值
     *
     * @param key    参数key
     * @param type 参数类型，标识这一类的key
     * @param number 递增参数（兼容调用方传参）
     * @return 最新数值
     */
    Long increment(String key,String type, Long number);

    /**
     * 根据key递增并返回最新数值
     *
     * @param key    参数key
     * @return 最新数值
     */
    default Long increment(String key){
        return increment(key, 1L);
    }
}
