package com.xy.service.factory.device;

import com.xy.dto.*;
import com.xy.utils.R;
import com.xy.utils.Tuple;

import java.util.List;

/**
 * 设备 接口
 */
public interface DeviceFactory {

    /**
     * 注册
     *
     * @param save
     * @return
     */
    R save(DeviceRegisterDto.Save save);

    /**
     * 激活
     *
     * @param active
     * @return
     */
    R active(MercMiniDeviceDto.Active2 active);

    /**
     * 重置激活
     * @param restActive
     * @return
     */
    R restActive(MercMiniDeviceDto.RestActive restActive);

    /**
     * 发送指令
     *
     * @param commandMqtts
     * @return
     */
    R<List<Tuple.Tuple3<Long, Long, Boolean>>> senCommand(List<CommandMqtt> commandMqtts);

    /**
     * 联网状态
     *
     * @param save
     * @return
     */
    R netRecord(DeviceNetRecordDto.Save save);

    /**
     * 添加设备事件
     *
     * @param save
     * @return
     */
    R eventMsg(DeviceEventMsgDto.Save save);

    /**
     * 运营状态修改
     *
     * @param busySate
     * @return
     */
    R busyStatus(MercMiniDeviceDto.BusySate busySate);
}
