using PostFundManagement.Application.Services.Grants; using PostFundManagement.Domain; using PostFundManagement.Domain.Attributes; using PostFundManagement.Domain.Models; namespace PostFundManagement.Application.Abstractions.Services; public interface IGrantsService { ValueTask> GetContractsAsync(Pagination pagination, CancellationToken cancellationToken = default); ValueTask> GetContractAsync(string contractIdHash, CancellationToken cancellationToken = default); ValueTask> GetBudgetsAsync(Pagination pagination, CancellationToken cancellationToken = default); ValueTask> GetBudgetAsync(string budgetIdHash, CancellationToken cancellationToken = default); ValueTask> GetAwardsAsync(Pagination pagination, CancellationToken cancellationToken = default); ValueTask> GetAwardAsync(string awardIdHash, CancellationToken cancellationToken = default); [Audit] ValueTask ExecuteContractAsync(ExecuteContractRequest request, Guid userId, CancellationToken cancellationToken = default); [Audit] ValueTask CreateContractAsync(CreateContractRequest request, Guid userId, CancellationToken cancellationToken = default); [Audit] ValueTask CreateBudgetAsync(CreateBudgetRequest request, Guid userId, CancellationToken cancellationToken = default); [Audit] ValueTask CreateAwardAsync(CreateAwardRequest request, Guid userId, CancellationToken cancellationToken = default); ValueTask> GetContractUrlAsync(string contractIdHash, CancellationToken cancellationToken = default); [Audit] ValueTask UploadContractAsync(string contractIdHash, Guid userId, IFormFile file, CancellationToken cancellationToken = default); [Audit] ValueTask UpdateContractAsync(UpdateContractRequest request, CancellationToken cancellationToken = default); }