package com.sptg.iot.biz.service;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.sptg.common.core.beans.ResultBean;
import com.sptg.iot.api.dto.DeviceStatusNoticeDto;
import com.sptg.iot.api.dto.HeartbeatNoticeDto;
import com.sptg.iot.api.dto.IotDeviceDto;
import com.sptg.iot.api.entity.IotDevice;

import java.util.List;

/**
 * @author zwx
 * @create 2020/10/22 17:24
 */
public interface IotDeviceServiceInterface extends IService<IotDevice> {

    public ResultBean<Page<IotDevice>> showIotDeviceList(IotDeviceDto iotDeviceDto);

    public ResultBean<String> iotDeviceRegister(IotDeviceDto iotDeviceDto);

    public ResultBean<String> syncIotDeviceList(IotDeviceDto iotDeviceDto);

    public ResultBean<String> syncIotDeviceListByPrefix(List<String> prefixList);

    public ResultBean<String> syncIotDeviceDetailOne(IotDeviceDto iotDeviceDto);

    public ResultBean<String> syncIotDeviceDetailBatch(List<IotDeviceDto> iotDeviceDtoList);

    public ResultBean<String> syncIotDeviceDetailAll(IotDeviceDto iotDeviceDto);

    public IotDevice getIotDeviceByDeviceId(String deviceId);

    public ResultBean<String> deviceStatusChange(IotDevice iotDevice);

    public List<IotDevice> getList();

    ResultBean<Page<IotDevice>> pagingQuery(IotDeviceDto iotDeviceDto);

    public IotDevice getIotDeviceById(Long id);

    public ResultBean<IotDevice> deviceHeartbeatNotice(List<HeartbeatNoticeDto> heartbeatDtoList);

    public ResultBean<IotDevice> deviceStatusNotice(DeviceStatusNoticeDto deviceStatusNoticeDto);
}
