using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Contracts.DTO;

namespace IRaCIS.Core.Application.Interfaces
{
    public interface ITrialSiteService
    {
        Task<IResponseOutput> AddTrialSites(List<TrialSiteCommand> trialSites);
        Task<IResponseOutput> AssignSiteCRC(List<AssginSiteCRCCommand> trialSiteCRCList);
        Task<IResponseOutput> DeleteSiteCRC(Guid id, bool isDelete);
        Task<IResponseOutput> DeleteTrialSite(Guid id);
        Task<PageOutput<SiteStatDTO>> GetSiteCRCList(SiteCrcQueryDTO param);
        Task<PageOutput<SiteStatSimpleDTO>> GetSiteCRCSimpleList(SiteCrcQueryDTO param);
        Task<PageOutput<TrialSiteScreeningDTO>> GetTrialSiteScreeningList(TrialSiteQuery trialSiteQuery);
        Task<IEnumerable<TrialSiteForSelect>> GetTrialSiteSelect(Guid trialId);
    }
}