package com.zhongshu.card.client.service.school;

import com.github.microservice.models.device.DeviceInfoSyncParam;
import com.zhongshu.card.client.model.devices.*;
import com.github.microservice.net.ResultContent;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * @author TRX
 * @date 2024/6/14
 */
public interface DeviceInfoService {

    ResultContent syncDeviceInfo(DeviceInfoSyncParam param);

    ResultContent addDeviceInfo(DeviceInfoParam param);

    ResultContent<Page<DeviceInfoModel>> page(DeviceInfoSearch param, Pageable pageable);

    ResultContent<Page<DeviceInfoModel>> busPage(DeviceInfoSearch param, Pageable pageable);

    ResultContent deleteDeviceInfo(String id);

    ResultContent<DeviceInfoMoreModel> getDeviceDetail(String id);

    /**
     * 根据设备ID 精确查找设备信息
     *
     * @param deviceId
     * @return
     */
    ResultContent<DeviceInfoMoreModel> getDeviceDetailByDeviceId(String deviceId);

    /**
     * 根据设备ID 模糊查询设备列表
     *
     * @param deviceId
     * @return
     */
    ResultContent<List<DeviceInfoMoreModel>> getDeviceDetailByDeviceIdLike(String deviceId);

    /**
     * 设备绑定区域
     *
     * @param param
     * @return
     */
    ResultContent updateDevice(DeviceBindAreaParam param);

}
