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

namespace Service
{
	public interface IRoomServiceManager : IGenericManager<RoomService>
	{
		IList<RoomService> LoadAllByPage(out long total, int page, int rows, string order, string sort, string roomNumber, string startTime, string endTime, string[] services);

        IList<object[]> LoadCurrentRoomServices(int hotelID, string user);

        IList<object[]> LoadCurrentHostFaultStatistics(int hotelID, string user, int type);
		/// <summary>
		/// 加载客房当前请求的服务
		/// </summary>
		/// <param name="hostId"></param>
		/// <returns></returns>
		IList<RoomService> LoadCurrentRoomServices(int hostId);

        DataTable LoadCurrentRoomServicesCount(int hotelID, string user);

		/// <summary>
		/// 获取当前客房内异常
		/// </summary>
		/// <param name="user"></param>
		/// <returns></returns>
        IList<object[]> LoadCurrentRoomAbnormities(int hotelID, string user);


		IList<RoomService> LoadCurrentRoomAbnormities(int hostID);

		/// <summary>
		/// 获取当前客房内异常统计数据
		/// </summary>
		/// <param name="user"></param>
		/// <returns></returns>
        //DataTable LoadCurrentRoomAbnormitiesCount(int hotelID, string user);

		/// <summary>
		/// 设置服务状态
		/// </summary>
		/// <param name="host"></param>
		/// <param name="alarmCode"></param>
		/// <param name="status"></param>
		void SetService(Host host, string alarmCode, int status);

		/// <summary>
		/// 清除服务
		/// </summary>
		/// <param name="host"></param>
		/// <param name="service"></param>
		/// <param name="user"></param>
		void ClearRoomService(Host host, RoomService service, string user);

		RoomService Get(int hostID, string alarmCode);
	}
}
