package com.tongran.mtragent.service;

import com.tongran.mtragent.domain.AllMtrClient;
import com.tongran.mtragent.domain.RmMtrClientRegistration;

import java.util.List;

/**
 * MTR客户端注册Service接口
 * 
 * @author tongran
 * @date 2025-11-18
 */
public interface IRmMtrClientRegistrationService 
{
    /**
     * 查询MTR客户端注册
     * 
     * @param id MTR客户端注册主键
     * @return MTR客户端注册
     */
    public RmMtrClientRegistration selectRmMtrClientRegistrationById(Long id);

    /**
     * 查询MTR客户端注册列表
     * 
     * @param rmMtrClientRegistration MTR客户端注册
     * @return MTR客户端注册集合
     */
    public List<RmMtrClientRegistration> selectRmMtrClientRegistrationList(RmMtrClientRegistration rmMtrClientRegistration);

    /**
     * 新增MTR客户端注册
     * 
     * @param rmMtrClientRegistration MTR客户端注册
     * @return 结果
     */
    public int insertRmMtrClientRegistration(RmMtrClientRegistration rmMtrClientRegistration);

    /**
     * 修改MTR客户端注册
     * 
     * @param rmMtrClientRegistration MTR客户端注册
     * @return 结果
     */
    public int updateRmMtrClientRegistration(RmMtrClientRegistration rmMtrClientRegistration);

    /**
     * 批量删除MTR客户端注册
     * 
     * @param ids 需要删除的MTR客户端注册主键集合
     * @return 结果
     */
    public int deleteRmMtrClientRegistrationByIds(Long[] ids);

    /**
     * 删除MTR客户端注册信息
     * 
     * @param id MTR客户端注册主键
     * @return 结果
     */
    public int deleteRmMtrClientRegistrationById(Long id);

    /**
     * 配置更新策略
     * @param rmMtrClientRegistration
     * @return
     */
    int addAgentUpdatePolicy(RmMtrClientRegistration rmMtrClientRegistration);

    /**
     * 获取所有标识
     * @return
     */
    List<RmMtrClientRegistration> getAllLogicalNode();
    /**
     * 根据mtrClientId查询包含的clientId
     * @param rmMtrClientRegistration
     * @return clientId列表
     */
    List<AllMtrClient> getClientIdByMtrClientId(RmMtrClientRegistration rmMtrClientRegistration);
}
