using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Service.Reading.Dto;

namespace IRaCIS.Application.Interfaces
{
    public interface ITrialConfigService
    {
        Task<IResponseOutput> TrialReadingInfoSign(TrialReadingInfoSignInDto inDto);
        Task<IResponseOutput> UpdateTrialState(Guid trialId, string trialStatusStr, string? reason);
        Task<IResponseOutput> AbandonTrial(Guid trialId, bool isAbandon);
        Task<TrialConfigDTO> GetTrialConfigInfo(Guid trialId);

        Task<IResponseOutput> ConfigTrialBasicInfo(BasicTrialConfig trialConfig);

        Task<IResponseOutput> ConfigTrialProcessInfo(TrialProcessConfig trialConfig);

        Task<IResponseOutput> ConfigTrialUrgentInfo(TrialUrgentConfig trialConfig);

        Task<IResponseOutput> ConfigTrialPACSInfo(TrialPACSConfig trialConfig);
        Task<IResponseOutput> TrialConfigSignatureConfirm(SignConfirmDTO signConfirmDTO);

        Task<IResponseOutput> AsyncTrialCriterionDictionary(AsyncTrialCriterionDictionaryInDto inDto);

        Task<IResponseOutput> ResetAndAsyncCriterion(ResetAndAsyncCriterionInDto inDto);



    }
}
