using MadRunFabric.Model;
using EquipmentApi.Model.Dto;
using MadRunFabric.Common;
using System;
using System.Collections.Generic;
using System.Text;

namespace EquipmentApi.IRepositories
{
    /// <summary>
    /// 设备信息
    /// </summary>
    public interface IEqp_Equipment_InfoRepository : IRepository<Eqp_Equipment_Info, string>
    {
        /// <summary>
        /// 分页列表 - 根据分页查询数据列表 包含查询条件，显示字段，排序 - 关联设备表
        /// </summary>
        /// <param name="keyword"></param>
        /// <param name="stime"></param>
        /// <param name="etime"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="recordCount"></param>
        /// <returns></returns>
        IEnumerable<object> GetListsByPage(string keyword, string provincecode, string citycode, string projectid, string protype, 
            string bulidid, string floorid, string systemid, UserAccountInfoModel userinfo, int pageindex, int pagesize, out int recordCount);

        /// <summary>
        /// 列表 - 根据分页查询数据列表 包含查询条件，显示字段，排序 - 关联设备表 - App
        /// </summary>
        /// <param name="keyword"></param>
        /// <param name="stime"></param>
        /// <param name="etime"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="recordCount"></param>
        /// <returns></returns>
        IEnumerable<object> GetAppLists(string keyword, string provincecode, string citycode, string projectid, string protype, 
            string bulidid, string floorid, string systemid, UserAccountInfoModel userinfo, string equipname);

        /// <summary>
        /// 详情 - 获取设备详情 by id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        object GetDetails(string id, UserAccountInfoModel userinfo);

        /// <summary>
        /// 获取五级联动
        /// </summary>
        /// <returns></returns>
        object GetFiveTree(UserAccountInfoModel userinfo);

        /// <summary>
        /// 获取项目树
        /// </summary>
        /// <returns></returns>
        object GetProjectTree(UserAccountInfoModel userinfo);

        /// <summary>
        /// 获取楼层树
        /// </summary>
        /// <returns></returns>
        object GetAddressTree(string projectid);

        /// <summary>
        /// 获取楼层信息
        /// </summary>
        /// <returns></returns>
        object GetTreeInfo(string floorid);
    }
}
