package com.yuchen.saas.park.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuchen.saas.park.api.dto.irrigate.BindDTO;
import com.yuchen.saas.park.api.dto.irrigate.ControlIrrigateDTO;
import com.yuchen.saas.park.api.entity.park.PmgBatIrrigateBind;
import com.yuchen.saas.park.api.vo.park.irrigate.AllDeviceInfoVO;
import org.nest.springwrap.core.tool.api.R;

import java.util.List;

/**
 * @author 颜艺波
 * @date 2022/6/30 15:33
 * @Description
 */
public interface PmgBatIrrigateBindService extends IService<PmgBatIrrigateBind> {

    /**
     * 绑定
     * @param bindDTO
     * @return
     */
    R bind(BindDTO bindDTO);

    /**
     * 解除绑定
     * @param bindDTO
     * @return
     */
    R unBind(BindDTO bindDTO);

    /**
     * 查询所有浇灌设备信息
     * @param parkId
     * @return
     */
    List<AllDeviceInfoVO> allDeviceInfo(Long parkId);

    /**
     * 开启浇灌
     * @param controlIrrigateDTO
     * @return
     */
    Boolean start(ControlIrrigateDTO controlIrrigateDTO);

    /**
     * 关闭浇灌
     * @param controlIrrigateDTO
     * @return
     */
    Boolean stop(ControlIrrigateDTO controlIrrigateDTO);

    /**
     * 根据设备信息查询到关联信息
     * @param productKey 设备的 productKey
     * @param deviceName 设备的 deviceName
     * @return
     */
    PmgBatIrrigateBind getByDeviceName(String productKey, String deviceName);
}
