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

namespace NPP.SmartSchedue.Api.Contracts.Services.Integration
{
    /// <summary>
    /// 任务验证服务接口
    /// </summary>
    public interface ITaskValidationService
    {
        /// <summary>
        /// 分析任务需求
        /// </summary>
        Task<TaskRequirementAnalysisResult> AnalyzeTaskRequirementsAsync(List<WorkOrderEntity> tasks);

        /// <summary>
        /// 验证任务数据完整性
        /// </summary>
        Task<TaskDataValidationResult> ValidateTaskDataIntegrityAsync(List<WorkOrderEntity> tasks);

        /// <summary>
        /// 加载任务详细信息
        /// </summary>
        Task<TaskDetailLoadResult> LoadTaskDetailedInfoAsync(List<WorkOrderEntity> tasks);
    }
}