using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Domain;

namespace Service
{
    public interface ISysHotelGroupManager : IGenericManager<SysHotelGroup>
	{
		/// <summary>
		/// 获取指定分组及其所属的子组列表
		/// </summary>
		/// <param name="group"></param>
		/// <returns></returns>
        IList<SysHotelGroup> GetGroupList(SysHotelGroup group);
        
		/// <summary>
		/// 构造楼层树，用于 easyui-tree, easyui-combotree
		/// </summary>
		/// <param name="group"></param>
		/// <returns></returns>
        IList<object> CreateGroupTree(SysHotelGroup group);

		/// <summary>
		/// 构造楼层树，用于 easyui-tree, easyui-combotree
		/// </summary>
		/// <param name="group"></param>
		/// <returns></returns>
        object CreateGroupTree2(SysHotelGroup group);

		/// <summary>
		/// 构造带房号的 easyui-tree 数据格式的分组树，房号附在其所属的结点之下
		/// 如果分支上的房号包含在 checkedHosts 则将其选中
		/// BLW
		/// ├1栋
		/// │ └1层
		/// │　  ├101
		/// │	  └102
		/// └2栋
		///	   └2层
		/// </summary>
		/// <param name="group"></param>
		/// <param name="checkedHosts"></param>
		/// <returns></returns>
        IList<object> CreateGroupTreeWithHotel(SysHotelGroup group, IList<SysHotel> checkedHotels);

		/// <summary>
		/// 按层级构造分组名称
		/// 例如:
		///		BLW-1栋-1层
		/// </summary>
		/// <param name="group"></param>
		/// <returns></returns>
        string BuildGroupName(SysHotelGroup group);
	}
}
