package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.RmResourceRegistration;

import java.util.List;
import java.util.Map;

/**
 * 资源注册Mapper接口
 * 
 * @author gyt
 * @date 2025-08-12
 */
public interface RmResourceRegistrationMapper 
{
    /**
     * 查询资源注册
     * 
     * @param id 资源注册主键
     * @return 资源注册
     */
    public RmResourceRegistration selectRmResourceRegistrationById(Long id);

    /**
     * 查询资源注册列表
     * 
     * @param rmResourceRegistration 资源注册
     * @return 资源注册集合
     */
    public List<RmResourceRegistration> selectRmResourceRegistrationList(RmResourceRegistration rmResourceRegistration);

    /**
     * 新增资源注册
     * 
     * @param rmResourceRegistration 资源注册
     * @return 结果
     */
    public int insertRmResourceRegistration(RmResourceRegistration rmResourceRegistration);

    /**
     * 修改资源注册
     * 
     * @param rmResourceRegistration 资源注册
     * @return 结果
     */
    public int updateRmResourceRegistration(RmResourceRegistration rmResourceRegistration);

    /**
     * 删除资源注册
     * 
     * @param id 资源注册主键
     * @return 结果
     */
    public int deleteRmResourceRegistrationById(Long id);

    /**
     * 批量删除资源注册
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteRmResourceRegistrationByIds(Long[] ids);

    /**
     * 查询所有资源名称（[包含设备]功能使用）
     * @return 资源注册集合
     */
    public List<Map> selectAllResourceName();
    /**
     * 查询是否有此设备
     * @param hardwareSn 资源sn
     * @return 结果
     */
    public int countBySn(String hardwareSn);
    /**
     * 查询所有资源名称
     * @return 资源注册集合
     */
    public List<Map> selectAllResourceNameByType(RmResourceRegistration resourceRegistration);

    /**
     * 检测到服务器离线，修改状态为离线
     * @param rmResourceRegistration
     * @return
     */
    Integer updateStatusByResource(RmResourceRegistration rmResourceRegistration);

    List<RmResourceRegistration> getRegistrationByIds(String[] ids);

    /**
     * 根据clientId获取注册信息
     * @param rmResourceRegistration
     * @return
     */
    RmResourceRegistration selectRegistMsgByClientId(RmResourceRegistration rmResourceRegistration);

    /**
     * 获取所有逻辑节点标识
     * @return
     */
    List<Map> getAllLogicalNodeId();
}
