package com.usky.iot.service;

import com.usky.common.core.bean.CommonPage;
import com.usky.iot.domain.BaseBuild;
import com.usky.common.mybatis.core.CrudService;
import com.usky.iot.domain.BaseBuildFacility;
import com.usky.iot.domain.BaseBuildFacilityType;
import com.usky.iot.service.vo.BaseBuildFacilityVO;
import com.usky.iot.service.vo.BuildFacilityRelateRequestVO;
import com.usky.iot.service.vo.BuildFacilityRelateResponeVO;
import com.usky.iot.service.vo.BuildFacilityStatusVO;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * <p>
 * 建筑信息 服务类
 * </p>
 *
 * @author han
 * @since 2023-06-07
 */
public interface BaseBuildService extends CrudService<BaseBuild> {

    void add(BaseBuild baseBuild);

    void update(BaseBuild baseBuild);

    void remove(Integer id);

    List<BaseBuild> dataList(Integer id);

    CommonPage<BuildFacilityRelateResponeVO> buildFacilityRelateList(BuildFacilityRelateRequestVO requestVO);

    void setBuildFacilityStatus(BuildFacilityStatusVO statusVO);

    /**
     * 建筑设施关联查询
     *
     * @param baseBuildFacilityVO  主键ID
     */
    List<Object> buildFacilityInfo(BaseBuildFacilityVO baseBuildFacilityVO);

    /**
     * 类型设施关联查询
     *
     * @param baseBuildFacilityVO  主键ID
     */
    List<BaseBuildFacility> typeFacilityInfo(BaseBuildFacilityVO baseBuildFacilityVO);

    /**
     * 建筑关联类型查询
     * @param id  主键ID
     */
    List<BaseBuildFacilityType> buildTypeInfo(Integer id);

//    boolean checkNameUnique(BaseBuild baseBuild);
}
