package com.palmnest.service.estateserve;

import com.palmnest.application.dto.input.MeetingOrgDto;
import com.palmnest.model.FloorInfo;
import com.palmnest.model.property.TbBuild;
import com.palmnest.service.GenericManager;

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

/**
 * 楼层服务接口
 *
 * @author longmeizhen
 */

public interface FloorInfoManager extends GenericManager<FloorInfo, Integer> {
	/**
	 * 根据楼栋ID获取楼层列表
	 *
	 * @param orgId 楼栋id
	 * @return
	 * @throws Exception
	 */
	public List<FloorInfo> getFloorInfoByBuildId(int orgId) throws Exception;

	/**
	 * 保存或者更新楼层
	 *
	 * @param floorInfo
	 */
	public void saveOrUpdateFloorInfo(FloorInfo floorInfo) throws Exception;

	/**
	 * 根据楼栋ID获取楼层列表
	 *
	 * @param orgId 楼栋id
	 * @return
	 * @throws Exception
	 */
	public List<FloorInfo> getFloorListByOrgId(int orgId, String floorIds) throws Exception;

	public List<FloorInfo> getFloorListByName(String name, String buildId) throws Exception;

	public List<FloorInfo> getFloorListByFloorIds(String floorIds) throws Exception;

	public List<Map<String, Object>> getFloorAndRoomByOrgId(int orgId) throws Exception;

	public List<FloorInfo> getFloorAll();

	public List<FloorInfo> getFloorHaveMeeting(String orgId);

	public List<FloorInfo> getALLFloor(String orgId);

	/**
	 * 根据项目 查询楼栋集合
	 *
	 * @param organizationId
	 */
	public List<TbBuild> getTbBuildListByOrgaid(String orgId);

	public TbBuild getTbBuildById(int id);

	/**
	 * 根据房间号获取所有房间号以及楼层的组合信息
	 *
	 * @param roomIds
	 * @return
	 */
	public List<Map<String, Object>> getFloorAndRoomList(String roomIds);

	/**
	 * 获取楼层房间号
	 *
	 * @param startTime
	 * @param endTime
	 * @return
	 * @throws Exception
	 */
	public List<MeetingOrgDto> getFloorByStartTime(String startTime, String endTime) throws Exception;

}
