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