package com.hfkj.service;

import com.hfkj.entity.BsDevice;

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

/**
 * 设备服务
 * @author hurui
 */
public interface BsDeviceService {

    /**
     * 添加设备
     * @param device
     */
    void addDevice(BsDevice device);

    /**
     * 修改设备
     * @param device
     */
    void updateDevice(BsDevice device);

    /**
     * 批量绑定公司
     * @param deviceIdList
     * @param companyId
     */
    void batchBindCompany(List<Long> deviceIdList, Long companyId);

    /**
     * 绑定公司
     * @param deviceId 设备id
     * @param companyId  代理商id
     */
    void bindCompany(Long deviceId, Long companyId);


    /**
     * 批量绑定代理商
     * @param deviceIdList
     * @param agentId
     */
    void batchBindAgent(List<Long> deviceIdList, Long agentId);

    /**
     *
     * 绑定代理商
     * @param deviceId 设备id
     * @param agentId  代理商id
     */
    void bindAgent(Long deviceId, Long agentId);


    /**
     * 批量绑定业务员
     * @param deviceIdList
     * @param salesmanId
     */
    void batchBindSalesman(List<Long> deviceIdList, Long salesmanId);

    /**
     * 绑定业务员
     * @param deviceId 设备id
     * @param salesmanId  业务员id
     */
    void bindSalesman(Long deviceId, Long salesmanId);

    /**
     * 批量绑定业务员
     * @param deviceIdList
     */
    void batchUnbindSalesman(List<Long> deviceIdList);

    /**
     * 解绑业务员
     * @param deviceId 设备id
     */
    void unbindSalesman(Long deviceId);

    /**
     * 绑定门店
     * @param deviceId 设备id
     * @param storeId  门店id
     */
    void bindStore(Long deviceId, Long storeId);

    /**
     * 解绑门店
     * @param deviceId 设备id
     */
    void unbindStore(Long deviceId);

    /**
     * 编辑设备数据
     * @param device
     */
    void editDevice(BsDevice device);

    /**
     * 查询设备
     * @param deviceNo 设备编号
     * @return
     */
    BsDevice getDetailByNo(String deviceNo);

    /**
     * 查询设备详情
     * @param deviceId
     * @return
     */
    BsDevice getDetail(Long deviceId);

    /**
     * 查询设备列表
     * @param param
     * @return
     */
    List<BsDevice> getDeviceList(Map<String, Object> param);
}
