package com.ruoyi.rocketmq.service;

import com.ruoyi.rocketmq.domain.RmNetworkInterface;

import java.util.List;

/**
 * 客户端网络接口信息Service接口
 * 
 * @author gyt
 * @date 2025-10-14
 */
public interface IRmNetworkInterfaceService 
{
    /**
     * 查询客户端网络接口信息
     * 
     * @param id 客户端网络接口信息主键
     * @return 客户端网络接口信息
     */
    public RmNetworkInterface selectRmNetworkInterfaceById(Long id);

    /**
     * 查询客户端网络接口信息列表
     * 
     * @param rmNetworkInterface 客户端网络接口信息
     * @return 客户端网络接口信息集合
     */
    public List<RmNetworkInterface> selectRmNetworkInterfaceList(RmNetworkInterface rmNetworkInterface);

    /**
     * 新增客户端网络接口信息
     * 
     * @param rmNetworkInterface 客户端网络接口信息
     * @return 结果
     */
    public int insertRmNetworkInterface(RmNetworkInterface rmNetworkInterface);

    /**
     * 修改客户端网络接口信息
     * 
     * @param rmNetworkInterface 客户端网络接口信息
     * @return 结果
     */
    public int updateRmNetworkInterface(RmNetworkInterface rmNetworkInterface);
    /**
     * 修改客户端网络接口信息
     *
     * @param rmNetworkInterface 客户端网络接口信息
     * @return 结果
     */
    public int updateRmNetworkInterfaceByMac(RmNetworkInterface rmNetworkInterface);

    /**
     * 批量删除客户端网络接口信息
     * 
     * @param ids 需要删除的客户端网络接口信息主键集合
     * @return 结果
     */
    public int deleteRmNetworkInterfaceByIds(Long[] ids);

    /**
     * 删除客户端网络接口信息信息
     * 
     * @param id 客户端网络接口信息主键
     * @return 结果
     */
    public int deleteRmNetworkInterfaceById(Long id);

    /**
     * 绑定公网ip
     * @param rmNetworkInterface
     * @return
     */
    int bindPublicIp(RmNetworkInterface rmNetworkInterface);

    /**
     * 更新路由信息
     * @param clientId
     */
    void updateRouteMsg(String clientId);
}
