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