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_Workorder_PlanRepository : IRepository<Distri_Workorder_Plan, 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<Distri_Workorder_PlanDto> GetListsByPage(string keyword, string projectid, int planstate, UserAccountInfoModel userinfo, int pageIndex, int pageSize, out int recordCount);

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

        /// <summary>
        /// 抢单时效 / 待配送工单滞留时效 
        /// </summary>
        /// <param name="code">编号</param>
        /// <returns></returns>
        int GetLimitCount(string code);

        #region 计划工单
        /// <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> GetPlanTaskListsByPage(string keyword, string projectid, string stime, string etime, int planwostate, UserAccountInfoModel userinfo, int pageIndex, int pageSize, out int recordCount);

        /// <summary>
        /// 详情 - 获取科室详情 by id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Distri_Workorder_PlanTaskDto GetPlanTaskDetails(string id);

        #endregion
    }
}
