using System;
using System.Collections.Generic;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Infrastructure.Extention;

namespace IRaCIS.Core.Application.Contracts
{
    public interface IWorkloadDistributionService
    {
        PageOutput<WorkloadTPDTO> GetWorkloadTPList(WorkloadDistributionQueryParam param);
        IResponseOutput DistributeTP(WorkloadTPCommand workloadTPCommand);
        IResponseOutput UpdateDistributeTP(Guid tpId, Guid ReviewerId, Guid studyId);

        PageOutput<WorkloadGlobalDTO> GetWorkloadGlobalList(WorkloadDistributionQueryParam param);
        IResponseOutput DistributeGlobal(WorkloadGlobalCommand workloadGlobalCommand);
        IResponseOutput UpdateDistributeGlobal(Guid tpId, Guid ReviewerId,Guid subjectId, decimal visitNum);

        PageOutput<WorkloadADDTO> GetWorkloadADList(WorkloadDistributionQueryParam param);
        IResponseOutput DistributeAD(WorkloadAdCommand workloadTPCommand);
        IResponseOutput UpdateDistributeAD(Guid tpId, Guid ReviewerId);

        IResponseOutput<List<WorkloadDetailDTO>> GetWorkloadDetail(Guid WorkloadId);

        IResponseOutput UpdateGlobalStatus(Guid globalId);

    }
}
