using MadRunFabric.Model;
using EquipmentApi.Model.Dto;
using MadRunFabric.Common;
using MongoDB.Bson;
using MongoDB.Driver;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EquipmentApi.IRepositories
{
    public interface IWo_WashRepository: IRepository<Wo_Wash,string>
    {
        /// <summary>
        /// 根据分页查询数据列表 包含查询条件，显示字段，排序 - 关联项目表 demo
        /// </summary>
        /// <returns></returns>
        IEnumerable<Wo_WashListDto> GetList1(BsonDocument match, int pageIndex, int pageSize, BsonDocument sort);

        /// <summary>
        /// 根据分页查询数据列表 包含查询条件，显示字段，排序 - 关联项目表 demo
        /// </summary>
        /// <returns></returns>
        IEnumerable<BsonDocument> GetList2(int pageIndex, int pageSize);

        /// <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<WoWashDto> GetListsByPage(string keyword, string stime, string etime, 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<WoWashDto> GetAppLists(string keyword, string projectid, string departmentsid, string floorid, string personid, string createtime, int tasktype);


        /// <summary>
        /// 获取洗涤工单详情 by id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        WoWashDetailsDto GetDetails(string id);
    }
}
