package com.tourguide.modules.finance.dto; import com.tourguide.modules.finance.entity.GuideWithdrawalAccount; import org.springframework.util.StringUtils; public class GuideBankCardResponse { private final Integer id; private final String bankName; private final String branchName; private final String cardMasked; private final String status; private final String reason; public GuideBankCardResponse(GuideWithdrawalAccount account) { this.id = account.getId(); this.bankName = account.getBankName(); this.branchName = account.getBankBranchName(); this.cardMasked = mask(account.getBankCardCode()); this.status = StringUtils.hasText(account.getBankCardStatus()) ? account.getBankCardStatus() : StringUtils.hasText(account.getTokenNo()) ? "approved" : "local"; this.reason = account.getBankCardReason(); } private String mask(String number) { if (!StringUtils.hasText(number)) return ""; String value = number.trim(); return "****" + value.substring(Math.max(0, value.length() - 4)); } public Integer getId() { return id; } public String getBankName() { return bankName; } public String getBranchName() { return branchName; } public String getCardMasked() { return cardMasked; } public String getStatus() { return status; } public String getReason() { return reason; } }