using New_College.IServices.BASE;
using New_College.Model;
using New_College.Model.Models;
using New_College.Model.ViewModels;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace New_College.IServices
{
    /// <summary>
    /// IT_EnrollmentPlanedescServices
    /// </summary>	
    public interface IT_EnrollmentPlanedescServices : IBaseServices<T_EnrollmentPlanedesc>
    {
        Task<PageModel<UniversityResult>> GetRecommendUniversity(RecommendUniversityQuery query);

        Task<MessageModel<List<UniversityEnrollmentPlanLazyResult>>> GetEnrollmentLazyByPage(LazyEnrollmentPlaneQuery query);

        Task<MessageModel<PageModel<PlanDescList>>> GetPlanByUniversity(PlanDetailQuery query);

        Task<MessageModel<List<IdNameResult>>> GetBatchByAreaAndYear(BatchQuery query);

        Task<MessageModel<List<CWBEnrollmentPlanResult>>> GetEnrollmentCWBByPage(CWBEnrollmentPlaneQuery query);


        /// <summary>
        /// 冲稳保详情
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<PageModel<UniversityEnrollmentPlanResult>>> GetCWBUniversityDetail(CWBUniversityDetailQuery query);


        Task<MessageModel<List<TagEnrollmentPlanResult>>> GetEnrollmentTagByPage(TagEnrollmentPlaneQuery query);

        /// <summary>
        /// 获取分析结果录取概率  获取之后保存一下
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<UniversityProbabilityResult>> GetUniversityProbability(UniversityProbabilityQuery query);

        /// <summary>
        /// 获取概率历史记录列表
        /// </summary>
        /// <returns></returns>
        Task<MessageModel<PageModel<ProbabilityResult>>> GetProbabilityResult(ProbabilityQuery query);


        /// <summary>
        /// 保存志愿表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<bool>> SaveVolunteerTable(VolunteerTableQuery query);

        /// <summary>
        /// 获取个人志愿列表  传Id
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<List<VolunteerTableListResult>>> GetVolunteerTableList(IdQuery query);

        /// <summary>
        /// 获取志愿表详情  传Id
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<List<VolunteerTableResult>>> GetVolunteerTableDetail(IdQuery query);

        /// <summary>
        /// 删除志愿表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<bool>> DeleteVolunteerTable(IdQuery query);

        /// <summary>
        /// 保存志愿表 霍兰德专用
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<bool>> SaveHollandVolunteer(HollandVolunteerTableQuery query);

        /// <summary>
        /// 获取一键生成的志愿表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<List<SimuVolunteerTableResult>>> GetAutoVolunteerTableDetail(VolunteerTableQuery query);

        /// <summary>
        /// 获取霍兰德一键生成的志愿表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<List<SimuVolunteerTableResult>>> GetHollandVolunteerTableDetail(HollandVolunteerTableQuery query);


        /// <summary>
        /// 根据标签推荐选科
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<string>> GetSubjectSelectByTag(ByTagSubjectSelectQuery query);


        /// <summary>
        /// 获取喜欢的院校
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<List<LikeSchoolMajor>>> GetLikeSchoolMajor(IdQuery query);


        /// <summary>
        /// 专业规划
        /// </summary>
        /// <returns></returns>
        Task<MessageModel<List<MajorPlanResult>>> GetMajorPlanClaim(CustomerQuery query);


        /// <summary>
        /// 获取批次
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<List<IdNameResult>>> GetBatchByYearArea(YearAreaQuery query);



     


        }
}