package com.cf.imes.module.system.service.tokenconfig;


import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.module.system.controller.admin.tokenconfig.vo.TokenConfigPageReqVO;
import com.cf.imes.module.system.controller.admin.tokenconfig.vo.TokenConfigRespVO;
import com.cf.imes.module.system.controller.admin.tokenconfig.vo.TokenConfigSaveReqVO;
import com.cf.imes.module.system.dal.dataobject.tokenconfig.TokenConfigDO;

/**
 * @author token 配置管理接口
 */
public interface TokenConfigService {

    /**
     * 获取token分页
     *
     * @param pageReqVO
     * @return
     */
    PageResult<TokenConfigRespVO> getTokenConfigPage(TokenConfigPageReqVO pageReqVO);

    /**
     * 根据id查询token
     *
     * @param id
     * @return
     */
    TokenConfigDO getTokenConConfig(Long id);

    /**
     * 新增token
     *
     * @param reqVO
     */
    void insertTokenConfig(TokenConfigSaveReqVO reqVO);

    /**
     * 更新token
     *
     * @param reqVO
     */
    void updateTokenConfig(TokenConfigSaveReqVO reqVO);

    /**
     * 删除token
     *
     * @param id
     */
    void deleteTokenConfig(Long id);

    /**
     * 校验token
     *
     * @param token
     * @return
     */
    Long checkTokenConfig(String token);

    /**
     * 根据数据库中存储的应用 Token 获取所属组织编号。
     *
     * @param appToken 应用 Token
     * @return 组织编号
     */
    Long getOrganIdByAppToken(String appToken);

    /**
     * 复制token
     *
     * @param id
     * @return
     */
    String tokenConfigCopy(Long id);
}
