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

namespace DistributionApi.IRepositories
{
    public interface IDistri_WorkorderRepository : IRepository<Distri_Workorder, 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 projectid,int wosorts, int wostate, int wxstate, string stime,string etime,string rolecode,string usercode, UserAccountInfoModel userinfo, int pageIndex, int pageSize, out int recordCount);
       
        /// <summary>
        /// 详情 - 获取详情 by id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        object GetDetails(string id);

        /// <summary>
        /// 获取累积待配送量最大值 - 配送岗 - 5个（超过这个数值不能进行抢单）
        /// </summary>
        /// <param name="usercode"></param>
        /// <returns></returns>
        int GetLimitMaxCount(string usercode);

        /// <summary>
        /// 获取评价规定时间间隔
        /// </summary>
        /// <returns></returns>
        int GetEvaluateHour();

        /// <summary>
        /// 获取用户当前角色 - 根据排班
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        string GetUserCodeByClassMap(string usercode);

        #region 所有工单 - 随机工单 和 计划分送工单 - App
        /// <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<Distri_PlanAndOrderDto> GetPlanAndTaskListByPage(string keyword, string projectid, int isfinish,int wosorts, int wostate, string stime, string etime, string rolecode,string usercode, UserAccountInfoModel userinfo, int pageIndex, int pageSize, out int recordCount);

        /// <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> GetOffenceWOListByPageAsync(string keyword, string projectid, string stime, string etime, string rolecode, string usercode, UserAccountInfoModel userinfo, int isappeal, int pageIndex, int pageSize, out int recordCount);


        #endregion

    }
}
