package cn.hanghui.outapi.platform.tenant.service;

import cn.hanghui.outapi.platform.common.entity.rest.RestResult;
import cn.hanghui.outapi.platform.tenant.entity.dto.IotPlatformAuthDto;
import cn.hanghui.outapi.platform.tenant.entity.dto.IotPlatformAuthReqDto;
import cn.hanghui.outapi.platform.tenant.entity.dto.IotUserInfoDto;
import cn.hanghui.outapi.platform.tenant.entity.po.IotPlatformAuth;
import com.baomidou.mybatisplus.core.metadata.IPage;

/**
 * @author shisl
 * @package cn.hanghui.outapi.platform.tenant.service
 * @class AlipayIotService
 * @date 2023/6/9 下午1:25
 * @description
 */
public interface AlipayIotService {
    /**
     * 添加/编辑授权
     *
     * @param dto
     * @return
     */
    RestResult<Boolean> addAuth(IotPlatformAuthDto dto);

    /**
     * 删除授权
     *
     * @param id
     * @return
     */
    RestResult<Boolean> del(Long id);

    /**
     * 修改授权状态
     *
     * @param id
     * @param status
     * @return
     */
    RestResult<Boolean> opStatus(Long id, Boolean status);

    /**
     * 查询授权
     *
     * @param dto
     * @return
     */
    RestResult<IPage<IotPlatformAuthDto>> page(IotPlatformAuthReqDto dto);


    /**
     * 校验token是否有权限调用
     *
     * @param token
     * @return
     */
    RestResult<Boolean> checkToken(String token);

    /**
     * 校验token
     *
     * @param token
     * @return
     */
    RestResult<IotPlatformAuth> validateToken(String token);

    /**
     * 推送用户三要素
     *
     * @param dto
     * @return
     */
    RestResult<Boolean> userPush(IotUserInfoDto dto);

    /**
     * 获取用户三要素
     *
     * @param dto
     * @return
     */
    RestResult<IotUserInfoDto> userQuery(IotUserInfoDto dto);


}
