//--------------------------------------------------------------------
//     此代码由T4模板自动生成  byzhouhang 20210918
//	   生成时间 2022-01-05 09:17:03 
//     对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------

using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Core.Infrastructure.Extention;
using Microsoft.AspNetCore.Mvc;

namespace IRaCIS.Core.Application.Contracts
{
    public interface ITrialDocumentService
    {
        Task<IResponseOutput> UserAbandonDoc(Guid documentId, bool isSystemDoc);
        Task<IResponseOutput> AddOrUpdateTrialDocument(AddOrEditTrialDocument addOrEditTrialDocument);
        Task<IResponseOutput> DeleteTrialDocument(Guid trialDocumentId, Guid trialId);
        Task<(PageOutput<UnionDocumentWithConfirmInfoView>, object)> GetDocumentConfirmList(DocumentTrialUnionQuery querySystemDocument);
        Task<PageOutput<TrialDocumentView>> GetTrialDocumentList(TrialDocumentQuery queryTrialDocument);
 
        Task<IResponseOutput<PageOutput<UnionDocumentWithConfirmInfoView>> > GetUserDocumentList(TrialUserDocUnionQuery querySystemDocument);
        Task<IResponseOutput> SetFirstViewDocumentTime(Guid documentId, bool isSystemDoc);
        Task<IResponseOutput> UserConfirm(UserConfirmCommand userConfirmCommand);
        Task<List<TrialUserDto>> GetTrialUserSelect(Guid trialId);


        PageOutput<DocumentUnionWithUserStatView> GetTrialSystemDocumentList(DocumentTrialUnionQuery querySystemDocument);
        List<TrialUserUnionDocumentView> GetTrialUserDocumentList(Guid trialId);
    }
}