package com.bonus.bracelet.service;

import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.entity.bracelet.vo.*;

import java.util.List;

/**
 * IBraceletService 手环管理
 */
public interface IBraceletService {

    /**
     * 手环列表
     * @param data
     * @return
     */
    List<BraceletVo> getBraceletLists(BraceletVo data);

    /**
     * 手环箱绑定手环列表
     * @param data
     * @return
     */
    List<BraceletVo> getShBindLists(BraceletVo data);

    /**
     * 未绑定手环列表
     * @param data
     * @return
     */
    List<BraceletVo> getShBindNoLists(BraceletVo data);

    /**
     * 手环箱管理页面手环箱列表
     * @param data
     * @return
     */
    List<ShboxVo> getShboxLists(ShboxVo data);

    /**
     * 手环箱列表
     * @param data
     * @return
     */
    List<ShboxVo> getShboxallLists(ShboxVo data);
    /**
     * 手环绑定选择列表
     * @param data
     * @return
     */
    List<ShboxVo> getShboxBindLists(ShboxVo data);

    /**
     * 根据手环箱id获得详细信息
     * @param shboxId
     * @return
     */
    public AjaxResult selectBoxById(Integer shboxId);

    /**
     * 根据手环箱id获得刷新详细信息
     * @param shboxId
     * @return
     */
    public AjaxResult selectBoxNewById(Integer shboxId);

    /**
     * 新增手环信息
     * @param vo
     * @return
     */
    AjaxResult addSh(ShboxVo vo);

    /**
     * 新增设备属性信息
     * @param vo
     * @return
     */
    AjaxResult addAttribute(AttributeVo vo);

    /**
     * 新增手环箱信息
     * @param vo
     * @return
     */
    AjaxResult addBox(ShboxVo vo);

    /**
     * 手环绑定选择页面绑定手环信息
     * @param vo
     * @return
     */
    AjaxResult addShBind(ShboxVo vo);

    /**
     * 解除绑定
     * @param vo
     * @return
     */
    AjaxResult delSh(BraceletVo vo);

    /**
     * 修改手环
     * @param vo
     * @return
     */
    AjaxResult editSh(ShboxVo vo);

    /**
     * 修改手环箱
     * @param vo
     * @return
     */
    AjaxResult editBox(ShboxVo vo);

    /**
     * 删除手环
     * @param shId
     * @return
     */
    AjaxResult delShById(int shId);


    /**
     * 删除手环箱
     * @param shboxId
     * @return
     */
    AjaxResult delShboxById(int shboxId);

    /**
     * 绑定
     * @param shboxId
     * @param shIds
     * @return
     */
    AjaxResult bindSh(int shboxId,int[] shIds);

}
