package ${basePackage}.module.system.mgr;

import ${basePackage}.frame.auth.Token;
import ${basePackage}.module.system.req.ProfilesCreateRequest;
import ${basePackage}.module.system.req.ProfilesDeleteRequest;
import ${basePackage}.module.system.req.ProfilesFindRequest;
import ${basePackage}.module.system.req.ProfilesUpdateRequest;
import ${basePackage}.module.system.rsp.ProfilesCreateResponse;
import ${basePackage}.module.system.rsp.ProfilesDeleteResponse;
import ${basePackage}.module.system.rsp.ProfilesFindResponse;
import ${basePackage}.module.system.rsp.ProfilesUpdateResponse;

/**
 * 系统配置
 *
 * @author author
 * @version 0.0.1
 * @since 2020-05-24
 */
public interface ProfilesManager {

    /**
     * 插入
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    ProfilesCreateResponse create(ProfilesCreateRequest request, Token token);

    /**
     * 逻辑删除
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    ProfilesDeleteResponse delete(ProfilesDeleteRequest request, Token token);

    /**
     * 更新
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    ProfilesUpdateResponse update(ProfilesUpdateRequest request, Token token);

    /**
     * 查询
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    ProfilesFindResponse find(ProfilesFindRequest request, Token token);

    /**
     * 获得当前环境配置
     *
     * @param key          键
     * @param defaultValue 默认值
     * @return
     */
    String getString(String key, String defaultValue);

    /**
     * 获得当前环境配置
     *
     * @param key          键
     * @param defaultValue 默认值
     * @return
     */
    int getInt(String key, int defaultValue);

    /**
     * 获得当前环境配置
     *
     * @param key          键
     * @param defaultValue 默认值
     * @return
     */
    long getLong(String key, long defaultValue);
}
