
package com.tmerclub.cloud.platform.service;

import com.tmerclub.cloud.api.platform.vo.SysAccessKeyVO;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.platform.dto.SysAccessKeyDTO;
import com.tmerclub.cloud.platform.model.SysAccessKey;

/**
 * 系统密钥
 * @author TRACK
 */
public interface SysAccessKeyService {

    /**
     * 分页获取系统密钥列表
     * @param pageDTO 分页参数
     * @param sysAccessKeyDTO
     * @return 系统密钥列表分页数据
     */
    PageVO<SysAccessKey> page(PageDTO pageDTO, SysAccessKeyDTO sysAccessKeyDTO);

    /**
     * 根据系统密钥id获取系统密钥
     * @param sysAccessKeyId 系统密钥id
     * @return 系统密钥
     */
    SysAccessKeyVO getBySysAccessKeyId(Long sysAccessKeyId);

    /**
     * 保存系统密钥
     * @param sysAccessKeyDTO 系统密钥
     */
    void save(SysAccessKeyDTO sysAccessKeyDTO);

    /**
     * 更新系统密钥
     * @param sysAccessKeyDTO 系统密钥
     */
    void update(SysAccessKeyDTO sysAccessKeyDTO);

    /**
     * 根据系统密钥id删除系统密钥
     * @param sysAccessKeyId 系统密钥id
     */
    void deleteById(Long sysAccessKeyId);

    /**
     * 删除缓存
     * @param accessId
     */
    void removeCacheById(String accessId);

    /**
     * 重置密钥
     * @param sysAccessKeyId
     */
    void resetAccessKey(Long sysAccessKeyId);

    /**
     * 根据账号id获取信息
     * @param accessId
     * @return
     */
    SysAccessKeyVO getByAccessId(String accessId);
}
