-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathIPaymentRequestQueryManager.cs
More file actions
43 lines (36 loc) · 2.22 KB
/
IPaymentRequestQueryManager.cs
File metadata and controls
43 lines (36 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Unity.Payments.Domain.PaymentRequests;
using Unity.Payments.PaymentRequests;
namespace Unity.Payments.Domain.Services
{
public interface IPaymentRequestQueryManager
{
// Payment Request Queries
Task<int> GetPaymentRequestCountBySiteIdAsync(Guid siteId);
Task<long> GetPaymentRequestCountAsync();
Task<PaymentRequest?> GetPaymentRequestByIdAsync(Guid paymentRequestId);
Task<List<PaymentRequest>> GetPaymentRequestsByIdsAsync(List<Guid> paymentRequestIds, bool includeDetails = false);
Task<List<PaymentRequest>> GetPagedPaymentRequestsWithIncludesAsync(int skipCount, int maxResultCount, string sorting);
Task<List<PaymentDetailsDto>> GetListByApplicationIdAsync(Guid applicationId);
Task<List<PaymentDetailsDto>> GetListByApplicationIdsAsync(List<Guid> applicationIds);
Task<List<PaymentDetailsDto>> GetListByPaymentIdsAsync(List<Guid> paymentIds);
Task<decimal> GetTotalPaymentRequestAmountByCorrelationIdAsync(Guid correlationId);
// Payment Request Operations
Task<PaymentRequest> InsertPaymentRequestAsync(PaymentRequest paymentRequest);
// DTO Creation & Mapping
Task<PaymentRequestDto> CreatePaymentRequestDtoAsync(Guid paymentRequestId);
Task<List<PaymentRequestDto>> MapToDtoAndLoadDetailsAsync(List<PaymentRequest> paymentsList);
Task<string> GetAccountDistributionCodeAsync(AccountCodingDto? accountCoding);
// Queue Operations
Task ManuallyAddPaymentRequestsToReconciliationQueueAsync(List<Guid> paymentRequestIds);
// Helper Method
void ApplyErrorSummary(List<PaymentRequestDto> mappedPayments);
// Pending Payments
Task<List<PaymentRequestDto>> GetPaymentPendingListByCorrelationIdAsync(Guid applicationId);
// Payment Rollups (paid + pending aggregation)
Task<ApplicationPaymentRollupDto> GetApplicationPaymentRollupAsync(Guid applicationId, List<Guid> childApplicationIds);
Task<Dictionary<Guid, ApplicationPaymentRollupDto>> GetApplicationPaymentRollupBatchAsync(List<Guid> applicationIds, Dictionary<Guid, List<Guid>> childApplicationIdsByParent);
}
}