feat: Enhance withdrawal request handling with additional fields and network level configurations

This commit is contained in:
masoodafar-web
2025-12-04 19:53:30 +03:30
parent 5e3112d71f
commit ee1fa9d064
7 changed files with 221 additions and 39 deletions
@@ -5,6 +5,7 @@ public class GetWithdrawalRequestsQuery : IRequest<GetWithdrawalRequestsResponse
public int? Status { get; set; } // CommissionPayoutStatus enum
public long? UserId { get; set; }
public string? WeekNumber { get; set; }
public string? IbanNumber { get; set; }
public PaginationState? PaginationState { get; set; }
public string? SortBy { get; set; }
}
@@ -33,6 +33,11 @@ public class GetWithdrawalRequestsQueryHandler : IRequestHandler<GetWithdrawalRe
query = query.Where(x => x.WeekNumber == request.WeekNumber);
}
if (!string.IsNullOrWhiteSpace(request.IbanNumber))
{
query = query.Where(x => x.IbanNumber != null && x.IbanNumber.Contains(request.IbanNumber));
}
query = query.ApplyOrder(sortBy: request.SortBy ?? "-Created");
var meta = await query.GetMetaData(request.PaginationState, cancellationToken);
@@ -53,8 +58,11 @@ public class GetWithdrawalRequestsQueryHandler : IRequestHandler<GetWithdrawalRe
IbanNumber = x.IbanNumber,
RequestedAt = x.WithdrawnAt ?? x.Created,
ProcessedAt = x.LastModified,
ProcessedBy = null, // TODO: Add admin user tracking
Reason = null, // TODO: Add rejection reason field
ProcessedBy = x.ProcessedBy,
Reason = x.RejectionReason,
BankReferenceId = x.BankReferenceId,
BankTrackingCode = x.BankTrackingCode,
PaymentFailureReason = x.PaymentFailureReason,
Created = x.Created
}).ToList();
@@ -20,5 +20,8 @@ public class WithdrawalRequestModel
public DateTime? ProcessedAt { get; set; }
public string? ProcessedBy { get; set; }
public string? Reason { get; set; }
public string? BankReferenceId { get; set; }
public string? BankTrackingCode { get; set; }
public string? PaymentFailureReason { get; set; }
public DateTime Created { get; set; }
}