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] Task CreateEvidenceAsync(Guid userId, IFormCollection form, IFormFile file, CancellationToken cancellationToken = default); [Audit] Task RecordIndicatorActualAmountAsync(string indicatorIdHash, decimal amount, Guid userId, CancellationToken cancellationToken = default); Task> GetIndicatorsAsync(Pagination pagination, CancellationToken cancellationToken = default); Task> GetEvidenceFilesAsync(Pagination pagination, CancellationToken cancellationToken = default); [Audit] Task CreateMilestoneAsync(CreateMilestoneRequest request, Guid userId, CancellationToken cancellationToken = default); [Audit] Task CreateIndicatorAsync(CreateIndicatorRequest request, Guid userId, CancellationToken cancellationToken = default); Task> GetIndicatorAsync(string indicatorId, CancellationToken cancellationToken); Task> GetEvidenceAsync(string evidenceId, CancellationToken cancellationToken = default); Task> GetMilestoneEvidencesAsync(string milestoneIdHash, CancellationToken cancellationToken = default); Task> GetProjectEvidencesAsync(string projectIdHash, CancellationToken cancellationToken = default); [Audit] Task UpdateEvidenceAsync(UpdateEvidenceRequest request, Guid userId, CancellationToken cancellationToken = default); Task> GetEvidenceUrlAsync(string evidenceIdHash, CancellationToken cancellationToken = default); }