64 lines
3.5 KiB
Java
64 lines
3.5 KiB
Java
package com.baiyue.finance.dto;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
|
|
public final class FinanceWalletDtos {
|
|
private FinanceWalletDtos() { }
|
|
|
|
public record WalletAccount(String currencyCode, BigDecimal actualBalance,
|
|
BigDecimal frozenBalance, BigDecimal availableBalance,
|
|
BigDecimal creditLimit, BigDecimal creditUsed,
|
|
BigDecimal creditFrozen, BigDecimal availableCredit,
|
|
LocalDate creditExpiresOn, boolean creditActive,
|
|
int version, LocalDateTime updatedAt) { }
|
|
|
|
public record WalletPage<T>(List<T> records, long total, int page, int size, int pages) {
|
|
public static <T> WalletPage<T> of(List<T> records, long total, int page, int size) {
|
|
return new WalletPage<>(records, total, page, size,
|
|
total == 0 ? 0 : (int) ((total + size - 1) / size));
|
|
}
|
|
}
|
|
|
|
public record WalletLedgerEntry(long ledgerId, String businessNo, String changeType,
|
|
BigDecimal amount, BigDecimal actualBalanceAfter,
|
|
BigDecimal frozenBalanceAfter, BigDecimal availableBalanceAfter,
|
|
BigDecimal creditLimitAfter, BigDecimal creditUsedAfter,
|
|
BigDecimal availableCreditAfter,
|
|
LocalDate creditExpiresOnAfter,
|
|
String sourceType, String sourceNo, LocalDate occurredDate,
|
|
String paymentMethod, String referenceNo, String operatorName,
|
|
String remark, LocalDateTime createdAt) { }
|
|
|
|
public record RechargeRequest(long requestId, String requestNo, BigDecimal amount,
|
|
long voucherFileId, String voucherFileName,
|
|
String status, int version, String submittedByName,
|
|
String reviewedByName, String reviewRemark,
|
|
LocalDateTime createdAt, LocalDateTime reviewedAt) { }
|
|
|
|
public record RechargeChannel(boolean enabled, String qrCodeUrl) { }
|
|
|
|
public record RechargeReviewRequest(String decision, String remark, int expectedVersion) { }
|
|
|
|
public record AccountAdjustmentRequest(String type, BigDecimal amount, LocalDate occurredDate,
|
|
String paymentMethod, String referenceNo, String remark,
|
|
int expectedAccountVersion) { }
|
|
|
|
public record CreditLimitRequest(BigDecimal creditLimit, LocalDate creditExpiresOn, String remark,
|
|
int expectedAccountVersion) { }
|
|
|
|
public record WalletFreezeRequest(BigDecimal amount, String businessType,
|
|
String businessNo, String remark) { }
|
|
|
|
public record WalletHoldActionRequest(String remark) { }
|
|
|
|
public record WalletHold(long holdId, long customerId, String businessType,
|
|
String businessNo, BigDecimal amount,
|
|
BigDecimal actualFrozenAmount, BigDecimal creditFrozenAmount,
|
|
String status, Long freezeLedgerId, Long actionLedgerId,
|
|
WalletAccount account, LocalDateTime createdAt,
|
|
LocalDateTime completedAt) { }
|
|
}
|