using IRaCIS.Application.Contracts;
using IRaCIS.Core.Domain.Share;

namespace IRaCIS.Application.Interfaces
{

    public interface ITrialService
    {
        bool TrialExpeditedChange { get; set; }

        Task<IResponseOutput<Trial>> AddOrUpdateTrial(TrialCommand trialAddModel);
        Task<IResponseOutput> DeleteTrial(Guid trialId);

        Task<int> GetTrialExpeditedState(Guid trialId);
        Task<TrialDetailDTO> GetTrialInfoAndLockState(Guid projectId);
        Task<TrialAndTrialStateVieModel> GetTrialInfoAndMaxTrialState(Guid trialId);
        Task<PageOutput<TrialDetailDTO>> GetTrialList(TrialQueryDTO searchParam);

    }
}