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

namespace Service
{
    public interface IRoomTypeModalManager : IGenericManager<RoomTypeModal>
    {
        IList<RoomTypeModal> LoadAllByPage(out long total, int page, int rows, string order, string sort, int roomTypeId);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="roomTypeId"></param>
        /// <param name="sourceType">-1全部删除，0后台，1宝易</param>
        /// <returns></returns>
        IList<RoomTypeModal> LoadAll(int? roomTypeId, int sourceType = -1);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="roomType"></param>
        /// <param name="sourceType">-1全部删除，0后台，1宝易</param>
        /// <returns></returns>
        IList<RoomTypeModal> LoadAll(RoomType roomType, int sourceType);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="roomType"></param>
        /// <param name="deviceType"></param>
        /// <param name="sourceType">-1全部删除，0后台，1宝易</param>
        /// <returns></returns>
        IList<RoomTypeModal> LoadAll(RoomType roomType, DeviceType deviceType, int sourceType);
        /// <summary>
        /// 删除房型回路
        /// </summary>
        /// <param name="roomTypeModal"></param>
        void Delete(RoomTypeModal roomTypeModal);
        /// <summary>
        /// 通过房型删除回路
        /// </summary>
        /// <param name="roomTypeID"></param>
        /// <param name="sourceType">-1全部删除，0后台，1宝易</param>
        void DeleteByRoomTypeID(int roomTypeID, int sourceType);


        void DeleteByAddress(int roomTypeID, string address);
    }
}
