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

namespace CallCenterApi.IRepositories
{
    public interface IBus_Order_BaseRepository : IRepository<Bus_Order_Base, 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 ordercode, string key, string phone, string province, string city, string sourceid,
            string typeid, string deptid, string stime, string etime, int state, int pageindex, int pagesize, out int recordCount);

        /// <summary>
        /// 详情 - 获取详情
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        object GetDetails(string id);

        /// <summary>
        /// 获取日周月年工单类型统计
        /// </summary>
        /// <param name="stime"></param>
        /// <param name="etime"></param>
        /// <param name="optuser"></param>
        /// <returns></returns>
        object GetWorkOrderTypeCountReport(string stime, string etime, string optuser);

        /// <summary>
        /// 获取日周月年工单来源统计
        /// </summary>
        /// <param name="stime"></param>
        /// <param name="etime"></param>
        /// <param name="optuser"></param>
        /// <returns></returns>
        object GetWorkOrderSourceCountReport(string stime, string etime, string optuser);

        /// <summary>
        /// 获取日周月年工单24小时统计
        /// </summary>
        /// <param name="stime"></param>
        /// <param name="etime"></param>
        /// <param name="optuser"></param>
        /// <returns></returns>
        object GetWorkOrder24CountReport(string stime, string etime, string optuser);

        /// <summary>
        /// 获取用户工单排行榜
        /// </summary>
        /// <param name="top"></param>
        /// <param name="stime"></param>
        /// <param name="etime"></param>
        /// <returns></returns>
        object GetUserCountRank(int top,string stime, string etime);
    }
}
