package com.yfd.platform.modules.auxcontrol.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.modules.auxcontrol.domain.GatewayDevice;
import com.baomidou.mybatisplus.extension.service.IService;

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

/**
 * <p>
 * 变电站-通讯网关设备 服务类
 * </p>
 *
 * @author zhengsl
 * @since 2025-04-23
 */
public interface IGatewayDeviceService extends IService<GatewayDevice> {

    /**********************************
     * 用途说明: 根据IP,更新心跳保持时间
     * 参数说明
     * ip 终端对应IP
     * 返回值说明: 无
     ***********************************/
    void updateKeepLiveTime(String ip);

    /**********************************
    * 用途说明: 分页查询变电站网关设备
    * 参数说明 deviceName 设备名称
    * 参数说明 deviceModel 设备型号
    * 参数说明 deviceType 设备类型
    * 参数说明 status 状态
    * 参数说明 page
    * 返回值说明: com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.yfd.platform.modules.auxcontrol.domain.GatewayDevice>
    ***********************************/
    Page<GatewayDevice> getGatewayDevicePage(String stationId,String deviceName, String deviceModel, String deviceType, String status, Page<GatewayDevice> page);

    /**********************************
    * 用途说明: 新增变电站网关设备
    * 参数说明 gatewayDevice 网关设备对象
    * 返回值说明: boolean
    ***********************************/
    boolean addGatewayDevice(GatewayDevice gatewayDevice);

    /**********************************
    * 用途说明: 修改变变电站网关设备
    * 参数说明 gatewayDevice 网关设备对象
    * 返回值说明: boolean
    ***********************************/
    boolean updateGatewayDevice(GatewayDevice gatewayDevice);

    boolean connectToSlave(String ip);

    boolean disconnectToSlave(String ip);

    /**********************************
    * 用途说明: 查询网关机列表
    * 参数说明 stationId 变电站ID
    * 返回值说明: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
    ***********************************/
    List<Map<String, Object>> getGatewayList(String stationId);
}
