package jnpf.parameter.hepler;

import jnpf.parameter.service.ParamService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

@Component
@RequiredArgsConstructor
public class MysqlSequenceHelper {
    private final ParamService paramService;

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

    /**
     * 根据key递增并返回最新数值
     *
     * @param key    参数key
     * @param type   参数类型.用于标识这个key，是属于哪一类的。
     * @param number 递增参数（兼容调用方传参）
     * @return 最新数值
     */
    public Long increment(String key,String type, Long number){
        return paramService.increment(key,type, number);
    }

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

    /**
     * 根据key递增并返回最新数值
     *
     * @param key    参数key
     * @param type   参数类型.用于标识这个key，是属于哪一类的。
     * @return 最新数值
     */
    public Long increment(String key,String type){
        return increment(key, type,1L);
    }
}
