using PostFundManagement.Application.Services.Grants; using PostFundManagement.Domain; using PostFundManagement.Domain.Attributes; 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); [Audit] Task ExecuteContractAsync(ExecuteContractRequest request, Guid userId, CancellationToken cancellationToken = default); [Audit] Task CreateContractAsync(CreateContractRequest request, Guid userId, CancellationToken cancellationToken = default); [Audit] Task CreateBudgetAsync(CreateBudgetRequest request, Guid userId, CancellationToken cancellationToken = default); [Audit] Task CreateAwardAsync(CreateAwardRequest request, Guid userId, CancellationToken cancellationToken = default); Task> GetContractUrlAsync(string contractIdHash, CancellationToken cancellationToken = default); [Audit] Task UploadContractAsync(string contractIdHash, Guid userId, IFormFile file, CancellationToken cancellationToken = default); [Audit] Task UpdateContractAsync(UpdateContractRequest request, CancellationToken cancellationToken = default); }