using PostFundManagement.Application.Services.Evidence; using PostFundManagement.Domain; using PostFundManagement.Domain.Attributes; using PostFundManagement.Domain.Models; namespace PostFundManagement.Application.Abstractions.Services; public interface IEvidenceService { [Log] [Audit] Task CreateEvidenceAsync(Guid userId, IFormCollection form, IFormFile file, CancellationToken cancellationToken = default); [Log] [Audit] Task RecordIndicatorActualAmountAsync(string indicatorIdHash, decimal amount, Guid userId, CancellationToken cancellationToken = default); [Log] Task> GetIndicatorsAsync(Pagination pagination, CancellationToken cancellationToken = default); [Log] Task> GetEvidenceFilesAsync(Pagination pagination, CancellationToken cancellationToken = default); [Log] [Audit] Task CreateMilestoneAsync(CreateMilestoneRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] [Audit] Task CreateIndicatorAsync(CreateIndicatorRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] Task> GetIndicatorAsync(string indicatorId, CancellationToken cancellationToken); [Log] Task> GetEvidenceAsync(string evidenceId, CancellationToken cancellationToken = default); [Log] Task> GetMilestoneEvidencesAsync(string milestoneIdHash, CancellationToken cancellationToken = default); [Log] Task> GetProjectEvidencesAsync(string projectIdHash, CancellationToken cancellationToken = default); [Log] [Audit] Task UpdateEvidenceAsync(UpdateEvidenceRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] Task> GetEvidenceUrlAsync(string evidenceIdHash, CancellationToken cancellationToken = default); }