using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using NPP.SmartSchedue.Api.Contracts.Core.Enums;
using NPP.SmartSchedue.Api.Contracts.Services.Integration.Input;
using NPP.SmartSchedue.Api.Contracts.Services.Integration.Output;

namespace NPP.SmartSchedue.Api.Contracts.Services.Integration
{
    /// <summary>
    /// 任务整合前自检服务接口
    /// </summary>
    public interface ITaskIntegrationPreCheckService
    {
        /// <summary>
        /// 加载待整合的任务列表，支持多项目号筛选，按项目号分组展示
        /// </summary>
        Task<TaskIntegrationListOutput> LoadPendingIntegrationTasksAsync(LoadPendingTasksInput input);
        
        /// <summary>
        /// 对勾选的项目和任务进行整合前自检
        /// </summary>
        Task<TaskIntegrationPreCheckResult> ExecutePreCheckAsync(TaskIntegrationPreCheckInput input);
        
        /// <summary>
        /// 获取项目任务数量与可用人员数量对比（按日和周）
        /// </summary>
        Task<ProjectResourceComparisonResult> GetProjectResourceComparisonAsync(ProjectResourceComparisonInput input);
    }
}