using ASHermed.SinoInterface.Api.ContractModel;
using ASHermed.SinoInterface.Api.ContractModel.App;
using ASHermed.SinoInterface.Api.ContractModel.Framework.Login;
using ASHermed.SinoInterface.ContractModel;

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace ASHermed.SinoInterface.Api.IService
{
    /// <summary>
	/// 医生信息
	/// </summary>
	public interface IDoctorService
    {

        DoctorInfoByLanguage FindDoctorDetailByLanguage(int doctorId, int language, string userAgent);
        List<DoctorInfoByLanguage> FindListWithHosDeptPairByLanguage(string filter, int language);
        List<DoctorWithHosDeptByLanguage> FindDetailListByLanguage(int hosId, int deptId, int language, int aptType);
        List<AptDoctorByLanguage> DeptDoctor(int hosId, int deptId, int language);
        List<VideoDoctor> GetVideoDoctorByDept(int deptId, int language, string searchWords);
        List<DeptModel> GetVideoDept(int language);
        List<RevisitDoctor> GetRevisitDoctorByDept(int deptId, int language, string searchWords);
        List<DeptModel> GetRevisitDept(int language);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="isIndex">是否是首页展示</param>
        /// <param name="deptId"></param>
        /// <param name="language"></param>
        /// <returns></returns>
        List<WorkDoctor> FindWorkDocList(bool isIndex, int deptId, int language, string key);
        List<WorkDoctor> FindTeamDocList(bool isIndex, int deptId, int language);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="type">保险类型 3cigna</param>
        /// <param name="deptId"></param>
        /// <param name="language"></param>
        /// <returns></returns>
        List<WorkDoctor> FindInsurTeamDocList(int type, int deptId, int language);
        List<WorkDoctor> GetAllOnlineDoctors(int language, string key);
        List<DoctorBelongTo> GetDocHosIds(int doctorId);
        DoctorInfoByLanguage FindDoctorDetailCityByLanguage(int doctorId, int language);
        DoctorInfoModel FindDoctorDetail(int doctorId, int cityId, int language);
        List<InsurDoctor> GetInsurDocList(int type, int deptId, int language, string searchWords);
        Task<List<AptDocListInfo>> GetDocList(int hosId, string filter, int language);
    }
}
